diff --git a/compiler/cutils.pas b/compiler/cutils.pas index a169a28ce5..f655104e5e 100644 --- a/compiler/cutils.pas +++ b/compiler/cutils.pas @@ -620,9 +620,16 @@ uses backspace_quote:=''; for i:=1 to length(s) do begin - if s[i] in qchars then - backspace_quote:=backspace_quote+'\'; - backspace_quote:=backspace_quote+s[i]; + if (s[i]=#10) and (#10 in qchars) then + backspace_quote:=backspace_quote+'\n' + else if (s[i]=#13) and (#13 in qchars) then + backspace_quote:=backspace_quote+'\r' + else + begin + if s[i] in qchars then + backspace_quote:=backspace_quote+'\'; + backspace_quote:=backspace_quote+s[i]; + end; end; end; @@ -1120,7 +1127,10 @@ initialization end. { $Log$ - Revision 1.34 2004-01-26 22:08:20 daniel + Revision 1.35 2004-02-22 22:13:27 daniel + * Escape newlines in constant string stabs + + Revision 1.34 2004/01/26 22:08:20 daniel * Bugfix on constant strings stab generation. Never worked and still doesn't work for unknown reasons. diff --git a/compiler/symsym.pas b/compiler/symsym.pas index 56d1042008..97383725e7 100644 --- a/compiler/symsym.pas +++ b/compiler/symsym.pas @@ -2064,7 +2064,7 @@ implementation {even GDB v4.16 only now 'i' 'r' and 'e' !!!} case consttyp of conststring: - st:='s'''+backspace_quote(strpas(pchar(value.valueptr)),['''','"','\'])+''''; + st:='s'''+backspace_quote(strpas(pchar(value.valueptr)),['''','"','\',#10,#13])+''''; constbool, constint, constord, @@ -2367,7 +2367,10 @@ implementation end. { $Log$ - Revision 1.159 2004-02-20 21:54:47 peter + Revision 1.160 2004-02-22 22:13:27 daniel + * Escape newlines in constant string stabs + + Revision 1.159 2004/02/20 21:54:47 peter * use sp_internal flag to silence unused internal variable Revision 1.158 2004/02/13 15:42:21 peter