From b3cf95faf6aff0c698da1aa32d0ede6656d511f3 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 4 Dec 2011 15:43:37 +0000 Subject: [PATCH] * use ' rather than " as quote character in generated shell scripts on unix platforms, so that $ is not interpreted as the start of a variable name (several jvm assembler file names include $ signs) -- note: the behaviour of that code depended and still depends on on the platform for which the compiler was compiled, instead on the platform for which the script is generated. That still needs to be fixed git-svn-id: branches/jvmbackend@19749 - --- compiler/cutils.pas | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/compiler/cutils.pas b/compiler/cutils.pas index b321416475..37e5bcb1bc 100644 --- a/compiler/cutils.pas +++ b/compiler/cutils.pas @@ -915,9 +915,15 @@ implementation {$IFDEF MSWINDOWS} FORBIDDEN_CHARS = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '{', '}', '''', '`', '~']; + QUOTE_CHAR = '"'; {$ELSE} FORBIDDEN_CHARS = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '{', '}', '''', ':', '\', '`', '~']; + {$ifdef unix} + QUOTE_CHAR = ''''; + {$else} + QUOTE_CHAR = '"'; + {$endif} {$ENDIF} var s1 : ansistring; @@ -925,14 +931,14 @@ implementation quoted : boolean; begin quoted:=false; - s1:='"'; + s1:=QUOTE_CHAR; for i:=1 to length(s) do begin case s[i] of - '"' : + QUOTE_CHAR : begin quoted:=true; - s1:=s1+'\"'; + s1:=s1+('\'+QUOTE_CHAR); end; ' ', #128..#255 : @@ -948,7 +954,7 @@ implementation end; end; if quoted then - maybequoted:=s1+'"' + maybequoted:=s1+QUOTE_CHAR else maybequoted:=s; end; @@ -959,9 +965,15 @@ implementation {$IFDEF MSWINDOWS} FORBIDDEN_CHARS = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '{', '}', '''', '`', '~']; + QUOTE_CHAR = '"'; {$ELSE} FORBIDDEN_CHARS = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', - '{', '}', '''', ':', '\', '`', '~']; + '{', '}', '"', ':', '\', '`', '~']; + {$ifdef unix} + QUOTE_CHAR = ''''; + {$else} + QUOTE_CHAR = '"'; + {$endif} {$ENDIF} var s1 : string; @@ -969,14 +981,14 @@ implementation quoted : boolean; begin quoted:=false; - s1:='"'; + s1:=QUOTE_CHAR; for i:=1 to length(s) do begin case s[i] of - '"' : + QUOTE_CHAR : begin quoted:=true; - s1:=s1+'\"'; + s1:=s1+('\'+QUOTE_CHAR); end; ' ', #128..#255 : @@ -992,7 +1004,7 @@ implementation end; end; if quoted then - maybequoted:=s1+'"' + maybequoted:=s1+QUOTE_CHAR else maybequoted:=s; end;