@@ -2269,7 +2269,7 @@ TPythonEngine = class(TPythonInterface)
2269
2269
procedure SetProgramName (const ProgramName: string);
2270
2270
function IsType (ob: PPyObject; obt: PPyTypeObject): Boolean;
2271
2271
function GetAttrString (obj: PPyObject; AName: PAnsiChar):PAnsiChar;
2272
- function CleanString (const s : AnsiString) : AnsiString;
2272
+ function CleanString (const s : AnsiString; AppendLF : Boolean = True ) : AnsiString;
2273
2273
function Run_CommandAsString (const command : AnsiString; mode : Integer) : String;
2274
2274
function Run_CommandAsObject (const command : AnsiString; mode : Integer) : PPyObject;
2275
2275
function Run_CommandAsObjectWithDict (const command : AnsiString; mode : Integer; locals, globals : PPyObject) : PPyObject;
@@ -5224,7 +5224,7 @@ function TPythonEngine.GetAttrString(obj: PPyObject; AName: PAnsiChar):PAnsiChar
5224
5224
PyErr_Clear;
5225
5225
end ;
5226
5226
5227
- function TPythonEngine.CleanString (const s : AnsiString) : AnsiString;
5227
+ function TPythonEngine.CleanString (const s : AnsiString; AppendLF : Boolean ) : AnsiString;
5228
5228
var
5229
5229
i : Integer;
5230
5230
begin
@@ -5235,9 +5235,9 @@ function TPythonEngine.CleanString(const s : AnsiString) : AnsiString;
5235
5235
while i > 0 do
5236
5236
begin
5237
5237
Delete( result, i, 1 );
5238
- i := Pos(AnsiString(CR),result);
5238
+ i := Pos(AnsiString(CR),result, i );
5239
5239
end ;
5240
- if result[length(result)] <> LF then
5240
+ if AppendLF and ( result[length(result)] <> LF) then
5241
5241
Insert( LF, result, length(result)+1 );
5242
5242
end ;
5243
5243
@@ -6801,7 +6801,8 @@ function TEventDef.GetDisplayName: string;
6801
6801
function TEventDef.GetDocString : AnsiString;
6802
6802
begin
6803
6803
Owner.Container.CheckEngine;
6804
- FTmpDocString := Owner.Container.Engine.CleanString(AnsiString(FDocString.Text));
6804
+ FTmpDocString :=
6805
+ Owner.Container.Engine.CleanString(AnsiString(FDocString.Text), False);
6805
6806
Result := fTmpDocString;
6806
6807
end ;
6807
6808
@@ -7576,7 +7577,9 @@ procedure TPythonModule.DefineDocString;
7576
7577
begin
7577
7578
if DocString.Text <> ' ' then
7578
7579
begin
7579
- doc := PyString_FromString( PAnsiChar(CleanString(AnsiString(FDocString.Text))) );
7580
+ doc :=
7581
+ PyString_FromString(PAnsiChar(CleanString(EncodeString(FDocString.Text),
7582
+ False)) );
7580
7583
PyObject_SetAttrString( FModule, ' __doc__' , doc );
7581
7584
Py_XDecRef(doc);
7582
7585
CheckError(False);
@@ -8823,8 +8826,9 @@ procedure TPythonType.InitServices;
8823
8826
begin
8824
8827
// Basic services
8825
8828
if FDocString.Count > 0 then
8829
+ With Engine do
8826
8830
begin
8827
- FCurrentDocString := GetPythonEngine. CleanString(AnsiString (FDocString.Text));
8831
+ FCurrentDocString := CleanString(EncodeString (FDocString.Text), False );
8828
8832
tp_doc := PAnsiChar(FCurrentDocString);
8829
8833
end ;
8830
8834
tp_dealloc := @PyObjectDestructor;
0 commit comments