[Allegro] Codierungsproblem mit "if ARtic set"
Thomas Berger
ThB at Gymel.com
Mo Nov 4 15:12:37 CET 2013
Lieber Herr Eversberg,
>> Ihnen ist aber klar, dass "^" von "allegro" bereits auf
>> drei inkompatible Arten als Steuerzeichen eingesetzt wird
>> und Sie nun eine vierte draufsetzen?
>>
> Drei?
b"[^A]" - Exportsprache: Beginn beim Zeichen, das nicht A ist
^A - Regulaere Ausdruecke: "A" am Anfang
b"^A" - exportsprachenaehnlicher cString-Manipulator: Beginne bei ASCII 1
und nun
_^AA_..._ - Ersetze ASCII 170
> Erstens macht das an dieser Stelle aber nichts aus, und zweitens hatten
> Sie keinen umsetzbaren besseren Vorschlag, sondern haben bei jeder
> Alternative nur auifgezählt, warum sie nicht gut ist. Eine kritikfreie
> Lösung kriegen wir also nicht hin.
Hm. Eigentlich vermeinte ich geaeussert zu haben, dass alles ausser "\"
keinen Sinn macht, und dass \x.... mitsamt hexadezimaler Notation eine gute
Wahl ist. Ist "\" als solches gemeint, sollte es als "\\" escaped werden
(aequivalent \x5C), auch das ist ein Klassiker.
Allerdings muss beruecksichtigt werden - und das war kein Einwand, m.E. ist
das naemlich aktuell ein Problem und kann hoechstens besser werden -, dass
in der Flex-Sprache (m.W. nicht in der Job-Sprache) das Zeichen "\"
als Befehlstrenner gilt, und da die Sprache m.W. NICHT SAUBER geparst wird,
mussten bislang alle "\" in cStrings etc. durch "\\" escaped werden, damit
sie nicht als Befehlstrenner interpretiert wurden. In Zukunft muessten
sie durch "\\" escaped werden, damit sie nicht als Escape-Zeichen
aufgefasst werden: Faktisch bekommt man die Aenderung hier also sogar
geschenkt. AAABER: Voraussetzung dafuer ist, dass die Flex-Konstrukte
sauberer geparst werden, denn sonst muesste man alle in cStrings oder
inserts als solche gemeinten "\" nicht wie bislang als "\\" schreiben,
sondern als "\\\\" (und wenn in RTF eingebettet, als "\\\\\\\\", bei
EscChar=92 als "\\\\\\\\\\\\\\\\" einzugeben: Das will vermutlich niemand...).
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro