Moin und nachträglich Frohe Ostern ! Ich probiere gerade mal gcc aus (bisher Watcom) und stolpere über das ^Z das mein Editor als korrekten Abschluß der Quelldatei da anfügt. Watcom hat das eine Option die eine entsprechende Meldung abschaltet, gcc meint "error: stray '\32' in program". Gibt es da auch diese Möglichkeit ? Ansonsten müßte ich die Quelldateien durch ein Programm jagen daß das ^Z entfernt. In den unzähligen gcc-Optionen kann ich da nichts finden. Grüße Joe. PS: Google findet außer Reklame nichts ...
Hm. Hat dein Editor vielleicht eine Option, das EOF wegzulassen? Denn Google findet dazu nur Hinweise, die die Begriffe CP/M, DOS, oder „historisch“ beinhalten. Und genauso ist es dann wohl auch. Oliver
Was heißt korrektem Abschluss der Datei? Das hat da am Ende nichts zu suchen, wenn du mit GCC kompilieren willst.
NichtWichtig schrieb: > mach doch // davor Vor was ? Den Quellcode für den Editor (e2, uralt aber gut) habe ich nicht mehr. Der ist irgendwann mal bei einem Plattencrash weggeflogen. >Was heißt korrektem Abschluss der Datei? Das hat da am Ende nichts zu >suchen, wenn du mit GCC kompilieren willst. So ist es. Muß aber nicht. Beim watcom kann ich das ja auch abschalten.
Ein EOF haben nur wirklich museale Betriebssysteme wie CP/M gebraucht, die nur mit Sektoren und nicht mit Dateilängen umgehen konnten. Wer heutzutage sowas noch ans Ende seiner Dateien schreibt, hat es nicht besser verdient, als mit dem Ärger zu leben.
Patrick R. schrieb: > Was heißt korrektem Abschluss der Datei? Unter CP/M war das halt so. :) (Da gab es im Verzeichnis keinen Eintrag für die Dateilänge, nur für die Anzahl der 128-Byte-Sektoren.) Nein, wie man dem GCC beibringen kann, solch eine archaische Datei zu verarbeiten, weiß ich auch gerade nicht. Vermutlich müsste man sich eine locale zimmern, in der das ^Z als "whitespace" akzeptiert wird, und diese dann als Zeichensatz/Encoding für den Quelltext beim GCC angeben.
Deine Quelltextdatei ist fehlerhaft. Du solltest besser den Fehler beheben, als zu versuchen, ein korrekt arbeitendes Programm dazu zu bringen, den Fehler zu ignorieren.
Script rüberlaufen und ^Z. Braucht max 1 Stunde wenn man sowas implementieren will. Der Thread ist ja 1 Stunde alt. Also dein Problem wird vermutlich schneller mit ein Script gelöst als hier im Thread.
NichtWichtig schrieb: > // vor das ^Z Vermutlich wird sein Editor das aber auch bloß nicht zulassen. Wenn er schon selbst auf diesem komischen ^Z besteht, dann wird er wohl auch sicherstellen, dass es allein auf einer Zeile steht, also unmittelbar davor <CR><LF> ist.
:
Bearbeitet durch Moderator
Jörg W. schrieb: > dann wird er wohl > auch sicherstellen, dass es allein auf einer Zeile steht, also > unmittelbar davor <CR><LF> ist. Wie wärds dann mit /*. Is doch nur eine Datei!?
http://www.softpanorama.org/Utilities/dos2unix.shtml You can use tr to remove all carriage returns and Ctrl-z ( ^Z ) characters from a DOS file by entering: tr -d '\15\32' < dosfile.txt > unixfile.txt
Oder gescheiten Editor benutzen. Manche Probleme sind eigentlich keine wenn man sich ein bisken Mühe gibt :-) Eclipse, Notepad++, vi, geany, MS VS, µVision ... und und und... Da wird doch wohl was brauchbares dabei sein.
Ich habe ein konkretes Problem und eine konkrete Frage gestellt. Klar, man kann immer etwas anderes nehmen ...
Joachim D. schrieb: > Ich habe ein konkretes Problem und eine konkrete Frage gestellt. > > Klar, man kann immer etwas anderes nehmen ... Dir wird aber nichts anderes übrig bleiben, als die Zeichen entweder zu entfernen oder einen anderen Editor zu verwenden.
Klare Frage, klare Antwort: das Problem sitzt vor den Computer. Da musst du nach einer Lösung suchen. Oliver
Joachim D. schrieb: > Ich probiere gerade mal gcc aus (bisher Watcom) und stolpere > über das ^Z das mein Editor als korrekten Abschluß der Quelldatei > da anfügt. Ich würde sagen, der korrekte Abschluss einer C Quelldatei ist ein Newline (vor dem kein Backslash stehen darf). Das von Martin HR erwähnte 'tr' ließe sich bestimmt in Deinen Compileraufruf einbauen, aber den kennen wir ja nicht (wie auch Dein Betriebssystem).
Joachim D. schrieb: > Ich habe ein konkretes Problem und eine konkrete Frage gestellt. Und die Antwort "Dein Editor ist kaputt/ungeeignet" ist eine konkrete und zutreffende Antwort.
Das Problem mit dem Editor hat sich doch ohnehin erledigt: Joachim D. schrieb: > Den Quellcode für den Editor (e2, uralt aber gut) habe ich nicht > mehr. Der ist irgendwann mal bei einem Plattencrash weggeflogen. Es geht also lediglich darum, eine begrenzte Zahl von bestehenden Quelldateien einmal in ein ISO-C-konformes Format zu bringen. Damit ist das Problem ein für allemal aus der Welt. Ob man das manuell macht oder dafür ein Tool zuhilfe nimmt, würde ich von der Anzahl der betroffenen Dateien abhängig machen. Edit: Hab das obige Zitat falsch gelesen: Das Executable des Editors scheint ja noch vorhanden zu sein, nur sein Quellcode fehlt (war der tatsächlich Open-Source?). Ein richtiger Hacker würde wohl einfach den Binärcode des Editors patchen. Das Einfügen des ^Z-Zeichens geschieht vermutlich nur an einer enzigen Stelle im Code, die mit etwas Geschick oder einem guten Debugger relativ schnell zu finden sein dürfte.
:
Bearbeitet durch Moderator
mmm schrieb: > Das von Martin HR erwähnte 'tr' ließe sich bestimmt in Deinen > Compileraufruf einbauen, aber den kennen wir ja nicht (wie auch Dein > Betriebssystem). Das ist in 5 min selbst geschrieben. OS ist Windows 7. Es ist nun wirklich kein Problem, ein ^Z am Dateiende in die Tonne zu kloppen. Ich finde es nur merkwürdig, daß ein Kommandozeilentool darüber stolpert. Andere Compiler können das ja auch ...
Und ich dachte schon, Leute die noch XP nutzen sind altmodisch... Aber einen Editor für DOS? Wow. Wie nutzt du den überhaupt, in einer DOS-Box? Und kopierst dann ständig den Code auf den Host zum Kompilieren? Oder mit DJGPP?
Dr. Sommer schrieb: > Und ich dachte schon, Leute die noch XP nutzen sind altmodisch... Aber > einen Editor für DOS? Wow. Wie nutzt du den überhaupt, in einer DOS-Box? > Und kopierst dann ständig den Code auf den Host zum Kompilieren? Oder > mit DJGPP? Ich habe eine Thin-Client mit W98 ;-))) Ich liebe halt diesen Editor.
Joachim D. schrieb: > Ich habe eine Thin-Client mit W98 ;-))) Arbeitest du im Museum? ;-) Joachim D. schrieb: > Ich liebe halt diesen Editor. Kann VIM nicht ähnliches? Joachim D. schrieb: > Andere Compiler > können das ja auch ... Naja, der GCC war nie für CP/M gemacht, sondern für Unix/Linux... Und selbst wenn, solche Legacy-Unterstützungen bereiten oft mehr Kummer als sie nützen.
Dr. Sommer schrieb: > Aber > einen Editor für DOS? Wow. Wie nutzt du den überhaupt, in einer DOS-Box? Auf Windows 7 32-Bit laufen dank WoW16 noch 16-Bit Programme. Bei den 64-Bit Varianten ist WoW16 nicht mehr dabei.
Joachim D. schrieb: > Ich habe ein konkretes Problem und eine konkrete Frage gestellt. Und - hast du probiert, was passiert, wenn du das Dateiende auskommentierst? Konkreter Vorschlag - keine Rückmeldung?
Wolfgang schrieb: > Joachim D. schrieb: >> Ich habe ein konkretes Problem und eine konkrete Frage gestellt. > > Und - hast du probiert, was passiert, wenn du das Dateiende > auskommentierst? > > Konkreter Vorschlag - keine Rückmeldung? Geht leider nicht. Der Editor schreibt das selbst: 0d 0a 1a
Joachim D. schrieb: > Geht leider nicht. Der Editor schreibt das selbst: 0d 0a 1a E.INI EOFMODE=OFF Wenn das nicht geht gönne dir halt ein uddate auf E3 :) http://texteditors.org/cgi-bin/wiki.pl?E3_IBM
pingponguin schrieb: > Joachim D. schrieb: > >> Geht leider nicht. Der Editor schreibt das selbst: 0d 0a 1a > > > E.INI > > EOFMODE=OFF > > Wenn das nicht geht gönne dir halt ein uddate auf E3 :) > http://texteditors.org/cgi-bin/wiki.pl?E3_IBM :-))) Danke !
Der Editor ist halt irgendwie genial. Ich brauche kein Syntax-Highlightning und anderen Pillepalle. Ich will Textfiles erstellen und nichts anderes. Außerdem läuft er bei mir unter DOS, ist sehr gut lesbar und schnell. Ich sehe keinen Grund den wegzuwerfen.
Joachim D. schrieb: > Außerdem läuft er bei mir unter DOS Er kennt also keine Dateinamen, sondern nur 8.3-Kürzel, und er kennt nur den sog. Textmodus, d.h. kann bestenfalls 80 Zeichen in 43 Zeilen darstellen. Ich bin sehr, sehr froh darüber, daß ich seit weit über 20 Jahren diese Einschränkung hinter mir gelassen habe. Als ich mit meinem Job anfing, nutzte ich ein Terminal mit 24 Zeilen à 80 Zeichen ... und produzierte, um den Überblick zu behalten, jeden Monat einen gut 10cm dicken Stapel Ausdruck auf Endlospapier. Seitdem ich vernünftige Monitore habe (und Editoren nutze, die damit etwas anfangen können), drucke ich keinen Quelltext mehr aus. Auf meinem primären Arbeitsmonitor kann ich über 100 Textzeilen in lesbarer Form darstellen. Ich hätte schon in den 90ern nach einem Ersatz für den Editor gesucht - oder mir einen geschrieben, wenn ich dessen Funktionen für so genial gehalten hätte.
> Und ich dachte schon, Leute die noch XP nutzen sind altmodisch... Aber > einen Editor für DOS? Du solltest dir mal klar machen aus welchem Jahrhundert vi ist und der wird auch noch reichlich genutzt. Und dann solltest du mal jemanden zusehen der mit vi umgehen kann und das mit so einem Mausschubser von heute vergleichen. Anzuprangern ist der OP hingegen weil er den Source seines Editors verloren hat! Das geht ja mal garnicht. :-) Olaf
Olaf schrieb: > Du solltest dir mal klar machen aus welchem Jahrhundert vi ist und der > wird auch noch reichlich genutzt. Definiere „reichlich“... Sehr viele Programme wurden irgendwann mal im dem letzten Jahrtausend erstveröffentlicht, und sind heute noch in Benutzung. Nur halt nicht mehr in ihrer Urform. Und früher war ganz sicher nicht alles besser, schon gar nicht bei den Editoren. Oliver
Olaf schrieb: >> Und ich dachte schon, Leute die noch XP nutzen sind altmodisch... Aber >> einen Editor für DOS? > > Du solltest dir mal klar machen aus welchem Jahrhundert vi ist und der > wird auch noch reichlich genutzt. Ich würde sagen, eher selten. Meistens ist es eher vim oder gar eines der Klickibunti-Derivate davon. Du vergleichst hier außerdem eine Software, die immer noch auf dem Stand von anno dazumal ist, mit einer, die sich inzwischen weiterentwickelt hat. Windows stammt aus dem Jahre 1985 und wird von manchen Menschen noch heute genutzt. ;-) > Und dann solltest du mal jemanden zusehen der mit vi umgehen kann und das > mit so einem Mausschubser von heute vergleichen. Naja, vi wäre mir dann doch zu rudimentär. vim muss es schon sein.
Olaf schrieb: > Du solltest dir mal klar machen aus welchem Jahrhundert vi ist und der > wird auch noch reichlich genutzt. Und dann solltest du mal jemanden > zusehen der mit vi umgehen kann und das mit so einem Mausschubser von > heute vergleichen. Ja ich kenne so jemanden, und ja ich habe gesehen wie der in vim zwischen den einzelnen Texten umgeschaltet hat (und auch wie lange er dazu benötigt hat bis er die richtige Textseite gefunden hatte), ich dachte nur: wow braucht der lange dazu, in einem gescheiten Editor ist das ein einziger Mausklick
xxx schrieb: > Olaf schrieb: >> Du solltest dir mal klar machen aus welchem Jahrhundert vi ist und der >> wird auch noch reichlich genutzt. Und dann solltest du mal jemanden >> zusehen der mit vi umgehen kann und das mit so einem Mausschubser von >> heute vergleichen. > > Ja ich kenne so jemanden, und ja ich habe gesehen wie der in vim > zwischen den einzelnen Texten umgeschaltet hat (und auch wie lange er > dazu benötigt hat bis er die richtige Textseite gefunden hatte), ich > dachte nur: wow braucht der lange dazu, in einem gescheiten Editor ist > das ein einziger Mausklick Du hast den wichten Teil überlesen:
1 | jemanden ... der mit vi umgehen kann |
Die Lösung ist doch ganz einfach: Für archaische Sourcecodes nimmt man einen archaischen Compiler! Wer das nicht will, muss den Sourcecode halt anpassen, und das heisst hier: ^Z entfernen Wenn Watcom so ein vorsintflutlicher Compiler ist, der das noch kann, dann nimmt man halt den...
xxx schrieb: > Die Lösung ist doch ganz einfach: > > Für archaische Sourcecodes nimmt man einen archaischen Compiler! > > Wer das nicht will, muss den Sourcecode halt anpassen, und das heisst > hier: ^Z entfernen > > Wenn Watcom so ein vorsintflutlicher Compiler ist, der das noch kann, > dann nimmt man halt den... Meine Frage war ob es ein Flag gibt, das das abschaltet. e hat (für mich) den Vorteil, er wird komplett per Tastatur bedient, Maus fällt flach. e kann alles was ich brauche, warum wechseln ? Nebenbei ist die Schrift besser lesbar. Unter W verwende ich Textpad, auch ok. vi etc. ... muß man lieben ;)
mh schrieb: > Du hast den wichten Teil überlesen:jemanden ... der mit vi umgehen kann Woran erkennt man das? Derjenige (übrigens war der damals als Freelancer bei Rohde&Schwarz und macht auch viel bei Bosch) sagte damals das er immer vim nimmt und daher dachte ich, das er damit umgehen kann.
xxx schrieb: > Ja ich kenne so jemanden, und ja ich habe gesehen wie der in vim > zwischen den einzelnen Texten umgeschaltet hat (und auch wie lange er > dazu benötigt hat bis er die richtige Textseite gefunden hatte), ich > dachte nur: wow braucht der lange dazu, in einem gescheiten Editor ist > das ein einziger Mausklick Mausklick heißt, dass ich erstmal von der Tastatur zur Maus umgreifen muss. Wenn ich für einen Texteditor viel Mausinteraktion brauche, ist das Mist. Aber auch vim (egal ob GUI-Version oder nicht) lässt sich mit einem Mausklick ziwschen den Textfenstern umschalten. Ich würde von mir absolut nicht behaupten, wirklich gut mit vim zu sein, aber dennoch staunen Leute oft, wie schnell ich damit bin und kommen nicht hinterher, zu erkennen, was überhaupt gerade passiert. Und zu deinem Beispiel kenne ich auch das Gegenbeispiel von Leuten, die für jeden Bearbeitungsschritt erstmal zur Maus fassen und ewig in irgendwelchen Menüs rumsuchen. Kommt eben immer drauf an, wie gut man sein Tool beherrscht. xxx schrieb: > mh schrieb: >> Du hast den wichten Teil überlesen:jemanden ... der mit vi umgehen kann > > Woran erkennt man das? Na eben daran, dass er damit nicht langsam ist. ;-) > Derjenige (übrigens war der damals als Freelancer bei Rohde&Schwarz und > macht auch viel bei Bosch) sagte damals das er immer vim nimmt und daher > dachte ich, das er damit umgehen kann. Joachim D. schrieb: > e hat (für mich) den Vorteil, er wird komplett per Tastatur bedient, > Maus fällt flach. e kann alles was ich brauche, warum wechseln ? Die Einstellung ist immer etwas "gefährlich". Es ist nicht ungewöhnlich, Dinge, die man noch nie benutzt hat, nicht zu vermissen. Oft erkennt man den Wert erst, wenn man etwas wirklich mal ausprobiert hat.
Joachim D. schrieb: > Meine Frage war ob es ein Flag gibt, das das abschaltet. Ist ja nun beantwortet. Hat er nicht, genausowenig, wie meine Spülmaschine ein Spezialprogramm für Faustkeile hat. Der ganze Rest der Diskussion höngt sich an deiner Aussage auf, daß das ^Z da „als korrekten Abschluß der Quelldatei“ stünde. Oliver
Wie ist das denn in vim... viele IDE's wie z.b. Eclipse zeigen links einen Dateibaum an. Wenn das Projekt aus hunderten Dateien besteht kann ich mir ein paar Klicks die richtige finden. Wie geht das in vim ohne Maus? Muss ich da jedes Mal den Dateinamen eingeben?
> Joachim D. schrieb: >> e hat (für mich) den Vorteil, er wird komplett per Tastatur bedient, >> Maus fällt flach. e kann alles was ich brauche, warum wechseln ? > > Die Einstellung ist immer etwas "gefährlich". Es ist nicht ungewöhnlich, > Dinge, die man noch nie benutzt hat, nicht zu vermissen. Oft erkennt man > den Wert erst, wenn man etwas wirklich mal ausprobiert hat. Wenn man von der Mauserei öfter mal eine Sehnenscheidentzündung hat ...
> Meine Frage war ob es ein Flag gibt, das das abschaltet.
Bau doch einfach eins ein. Beim uebersichtlichen, wohldokumentierten und
gut reproduzierbarem Konzept hinter gcc kann das ja nur eine Sache von
Monaten^WMinuten sein sowas einzubauen. :)
Olaf
Oliver S. schrieb: >> Meine Frage war ob es ein Flag gibt, das das abschaltet. > > Ist ja nun beantwortet. Hat er nicht, Sehe ich nicht so. Siehe obige Antwort: eine locale zimmern, in der ^Z ein whitespace character ist, und es sollte funktionieren. Allerdings bin ich zu faul, das für Joachim hier zu machen, ist halt Arbeit, und ich habe nichtmal ansatzweise eine Ahnung, wo auf dem Windows die locales überhaupt hinterlegt sind.
Vermutlich wuerde es nur 10 Minuten dauern eine Sonderbehandlung fuer das leidige EOF in den CPP hineinzuzementieren und sich den neu zu bauen. Bei einem Forthinterpreter ging es noch schneller, um Tabs als Whitespace und Tab zu behandeln. Ob das Forth-like ist, weiss ich allerdings nicht. Waere mir aber auch egal.
P.S.: Er koennte ja noch ein
1 | #define ^1A |
probieren. Das ^1A muesste der dann wohl mit einem Hexeditor in die Datei praktizieren.
Ist ja auch nicht so tragisch. Das ^Z ist schnell ausgemerzt. Ich versuche im Moment, ein Beispiel mit dem g++ zu kompilieren. Der Linker zickt ... Ich mache dazu mal einen anderen Thread auf (bestimmt irgendwas übersehen).
Schlaubi Schlumpf schrieb: > P.S.: > > Er koennte ja noch ein > >
1 | > |
2 | > #define ^1A |
3 | > |
4 | > |
> > probieren.
1 | foo.c:1:9: error: macro names must be identifiers |
2 | #define |
3 | ^ |
4 | foo.c:4:1: error: stray ‘\32’ in program |
5 | |
6 | ^ |
Dr. Sommer schrieb: > Wie ist das denn in vim... viele IDE's wie z.b. Eclipse zeigen links > einen Dateibaum an. Wenn das Projekt aus hunderten Dateien besteht kann > ich mir ein paar Klicks die richtige finden. Wie geht das in vim ohne > Maus? Muss ich da jedes Mal den Dateinamen eingeben? Für sowas gibt es Plugins, z.B. https://github.com/scrooloose/nerdtree
Christopher J. schrieb: > Für sowas gibt es Plugins, z.B. https://github.com/scrooloose/nerdtree Das hatte ich mal ausprobiert und es hatte aus irgendwelchen Gründen nicht funktioniert... Bzw. der Dateibaum in Eclipse war immer noch praktischer.
Joachim D. schrieb: > Ist ja auch nicht so tragisch. Das ^Z ist schnell ausgemerzt. > DU könntest ja auch feedback geben ob >> EOFMODE=OFF >> > :-))) Danke ! die gewünschte Wirkung zeitigt. > Ich versuche im Moment, ein Beispiel mit dem g++ zu kompilieren. > Der Linker zickt ... Ich mache dazu mal einen anderen Thread auf > (bestimmt irgendwas übersehen). ansonsten kann ich mich dem nur anschliessen: Autor: Rufus >>> .... >>> den sog. Textmodus, d.h. kann bestenfalls 80 Zeichen in 43 Zeilen >>> darstellen. >>> bin sehr, sehr froh darüber, daß ich seit weit über 20 Jahren diese >>> Einschränkung hinter mir gelassen habe. .... Das behindert die Arbeit doch ganz gewaltig gleich was es für tolle Funktionen seinerzeit darin gab, no way sich nochmal an so etwas zu setzen. Ausser vlt. an historischem Gerät. --- elvis-2.2 im Gebäude ;)
Joachim D. schrieb: > Moin und nachträglich Frohe Ostern ! > > Ich probiere gerade mal gcc aus (bisher Watcom) und stolpere > über das ^Z das hätte allenfalls am 1.4 gepostet werden müssen mal ehrlich nach zig Jahren am Compi wundert man sich nicht mehr sondern killt ^Z aus den Dateien.....
Beitrag #5379155 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.