Bedeutung von "!" und "+" bei Scriptänderungen?
Mojn, mojn! Ich habe hier ein Script, das ich einsetzen möchte (tcpserver.c für mysql). Das Blöde, das Script ist ein Patch für ein bereits existierendes Script, und es sind wohl nur die Änderungen angegeben. Muß dann wohl selbst die paar Zeilen ändern, was ja nicht wirklich schlimm ist, aber mir macht die ÄnderungsNotation etwas Kopfzerbrechen: Auszug: [...............................................] strerr_die4sys(111,DROP,"unable to read ",fnrules,": "); } + void drop_db(void) + { + strerr_die4sys(111,DROP,"unable to verify DB ",db_database,": "); + } void found(char *data,unsigned int datalen) { *************** *** 198,205 **** } env("TCPREMOTEINFO",flagremoteinfo ? tcpremoteinfo.s : 0); ! if (fnrules) { int fdrules; fdrules = open_read(fnrules); if (fdrules == -1) { if (errno != error_noent) drop_rules(); --- 205,222 ---- } env("TCPREMOTEINFO",flagremoteinfo ? tcpremoteinfo.s : 0); ! if(usemysql) { ! if(flagdeny==2) { ! /* drop_db(); */ ! } else if(!flagdeny) { ! env("RELAYCLIENT",""); ! } ! flagdeny=0; ! } ! ! if(fnrules) { int fdrules; + fdrules = open_read(fnrules); if (fdrules == -1) { if (errno != error_noent) drop_rules(); *************** *** 240,246 **** [...............................................] die "+" Zeichen scheinen , daß zu sein, was hinzukommt. Jetzt wäre ja fast logisch, daß die "!" Zeichen, das bedeuten, was gestrichen wird. Aber was heißt ein einzelnes "!" vor einer WhileSchleife? Soll nun die ganze Schleife raus oder nur das "While" weg - gleiches für eine "if" Abfrage? Interessant wird es dann, wenn das, was zu streichen wäre, selbst im Orginal nicht steht. Das macht die Theorie dann wieder etwas wackelig ... (so zB die 10 "!"-Zeilen untereinander ...) Und was könnte es bedeuten, daß die Zeilenangabe mal in "***" steht und mal in "----" stehen ?? Seh ich gerade den Wald vor lauter Bäumen nicht, oder was ist hier los? Gruß Anatol -- --------------------------------------------- | recordcaster | das independent internet radio aus berlin --------------------------------------------- | internet : http://www.recordcaster.de | eMail : anatol@recordcaster.de | phone : +49 30 362 85 422 ---------------------------------------------
Anatol Schirmer wrote:
Ich habe hier ein Script, das ich einsetzen möchte (tcpserver.c für mysql). Das Blöde, das Script ist ein Patch für ein bereits existierendes Script, und es sind wohl nur die Änderungen angegeben. Muß dann wohl selbst die paar Zeilen ändern, was ja nicht wirklich schlimm ist, aber mir macht die ÄnderungsNotation etwas Kopfzerbrechen: [...] Seh ich gerade den Wald vor lauter Bäumen nicht, oder was ist hier los?
Wenn es ein Patch ist, dann sollte Dir das Programm "patch" weiter helfen. Vermutlich muesste ein "patch -p1 < patch.file" im Source-Tree der Applikation reichen. Siehe auch "man patch". CU, Th. -- Thomas Hertweck, Geophysicist Geophysical Institute, University of Karlsruhe
die "+" Zeichen scheinen , daß zu sein, was hinzukommt. Jetzt wäre ja fast logisch, daß die "!" Zeichen, das bedeuten, was gestrichen wird. Aber was heißt ein einzelnes "!" vor einer WhileSchleife? Soll nun die ganze Schleife raus oder nur das "While" weg - gleiches für eine "if" Abfrage? Interessant wird es dann, wenn das, was zu streichen wäre, selbst im Orginal nicht steht. Das macht die Theorie dann wieder etwas wackelig ... (so zB die 10 "!"-Zeilen untereinander ...) Und was könnte es bedeuten, daß die Zeilenangabe mal in "***" steht und mal in "----" stehen ??
Im patch sind immer die Unterschiede zwischen zwei Dateien, einer "von" und einer "zu" Datei. Syntax ist ungefähr so: ************************** *** von-Datei-Bereich **** Von-Datei-Zeile Von-Datei-Zeile... --- Zu-Datei-Bereich ---- Zu-Datei-Zeile Zu-Datei-Zeile... Alle Zeilen die geändert wurden fangen mit einem weiteren Zeichen an: !, + oder - +: Eingefügte Zeile in der ersten Datei (d.h. ist in der zweiten gar nicht vorhanden) -: Eine gelöschte Zeile in der ersten Datei !: Eine Zeile als Teil eines Bereiches wurde geändert. Das ! if (fnrules) { bedeutet also, daß in diesem "Block" sich ein Teil geändert hat (nämlich es sind Zeilen hinzugekommen bzw. wurden geändert im Bereich zwischen den Zeilen ----205,222---- So müsste es sein. Für die genaue Syntax schaue mal in das Manual zu "diff" bzw. zu den diffutils (www.gnu.org) Allerdings würde ich das Script nicht von Hand ändern sondern den Befehl patch benutzen. Gruss Norbert _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
participants (3)
-
Anatol Schirmer
-
Norbert Andres
-
Thomas Hertweck