Revision 9249a264
Von mh@waldpark.octosoft.eu vor mehr als 8 Jahren hinzugefügt
SL/DBUpgrade2.pm | ||
---|---|---|
147 | 147 |
# Remove DOS and Unix style line endings. |
148 | 148 |
chomp; |
149 | 149 |
|
150 |
# remove comments |
|
151 |
s/--.*$//; |
|
152 |
|
|
153 | 150 |
for (my $i = 0; $i < length($_); $i++) { |
154 | 151 |
my $char = substr($_, $i, 1); |
155 | 152 |
|
... | ... | |
176 | 173 |
&& $tag =~ /^ (?= [A-Za-z_] [A-Za-z0-9_]* | ) $/x) { # tag is identifier |
177 | 174 |
push @quote_chars, $char = '$' . $tag . '$'; |
178 | 175 |
$i = $tag_end; |
176 |
} elsif ($char eq "-") { |
|
177 |
if ( substr($_, $i+1, 1) eq "-") { |
|
178 |
# found a comment outside quote |
|
179 |
last; |
|
180 |
} |
|
179 | 181 |
} elsif ($char eq ";") { |
180 | 182 |
|
181 | 183 |
# Query is complete. Send it. |
Auch abrufbar als: Unified diff
SQL-Fehler falls -- in quotiertem String vorkommt.
da aber in SL/DBUpgrade2.pm generell alle Zeilenteile die -- haben,
weggeworfen werden:
s/--.*$;
wird der Rest der Datei nach Quote Ende durchsucht und nix mehr passiert.
Also schön nach zwei hintereinanderkommenden -- suchen aber nicht innerhalb von Quotestrings