meinereinerseiner
13-02-2007, 19:33
hallo,
habe hier ein etwas älteres patchfile, bei welchen ich die syntax nicht verstehe und ich kann es nicht mit dem "patch" befehl anwenden.
*** qmail-smtpd.c.dist Thu Jan 9 00:17:06 1997
--- qmail-smtpd.c Thu Jan 9 00:44:49 1997
***************
*** 140,156 ****
switch(state)
{
case 0:
! if (ch == '\n') straynewline();
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
- if (ch == '\n') straynewline();
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
! state = 0;
break;
case 2: /* \r\n + . */
! if (ch == '\n') straynewline();
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
--- 140,155 ----
switch(state)
{
case 0:
! if (ch == '\n') { state = 1; break; }
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
! if (ch != '\n') state = 0;
break;
case 2: /* \r\n + . */
! if (ch == '\n') return; /* this is what sendmail-8.8.4 does -djg */
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
und hier die stelle im orginal quelltext:
switch(state) {
case 0:
if (ch == '\n') straynewline();
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
if (ch == '\n') straynewline();
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
state = 0;
break;
case 2: /* \r\n + . */
if (ch == '\n') straynewline();
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
sehe ich das richtig, das lt. patchfile, der code nach dem patchen so aussehen sollte:
switch(state) {
case 0:
if (ch == '\n') { state = 1; break; }
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
if (ch != '\n') state = 0;
break;
case 2: /* \r\n + . */
if (ch == '\n') return; /* this is what sendmail-8.8.4 does -djg */
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
danke
der tom
habe hier ein etwas älteres patchfile, bei welchen ich die syntax nicht verstehe und ich kann es nicht mit dem "patch" befehl anwenden.
*** qmail-smtpd.c.dist Thu Jan 9 00:17:06 1997
--- qmail-smtpd.c Thu Jan 9 00:44:49 1997
***************
*** 140,156 ****
switch(state)
{
case 0:
! if (ch == '\n') straynewline();
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
- if (ch == '\n') straynewline();
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
! state = 0;
break;
case 2: /* \r\n + . */
! if (ch == '\n') straynewline();
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
--- 140,155 ----
switch(state)
{
case 0:
! if (ch == '\n') { state = 1; break; }
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
! if (ch != '\n') state = 0;
break;
case 2: /* \r\n + . */
! if (ch == '\n') return; /* this is what sendmail-8.8.4 does -djg */
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
und hier die stelle im orginal quelltext:
switch(state) {
case 0:
if (ch == '\n') straynewline();
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
if (ch == '\n') straynewline();
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
state = 0;
break;
case 2: /* \r\n + . */
if (ch == '\n') straynewline();
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
sehe ich das richtig, das lt. patchfile, der code nach dem patchen so aussehen sollte:
switch(state) {
case 0:
if (ch == '\n') { state = 1; break; }
if (ch == '\r') { state = 4; continue; }
break;
case 1: /* \r\n */
if (ch == '.') { state = 2; continue; }
if (ch == '\r') { state = 4; continue; }
if (ch != '\n') state = 0;
break;
case 2: /* \r\n + . */
if (ch == '\n') return; /* this is what sendmail-8.8.4 does -djg */
if (ch == '\r') { state = 3; continue; }
state = 0;
break;
danke
der tom