Hi,

This diff removes the useless FILE* parameter of get_line().  In every
call this parameter is always "stdin".  Thus, we can replace ever use of
the variable iop with stdin.

Like every other diff, I tested this diff with the ftpd regression
tests.

OK?

bye,
Jan

Index: extern.h
===================================================================
RCS file: /cvs/src/libexec/ftpd/extern.h,v
retrieving revision 1.21
diff -u -p -r1.21 extern.h
--- extern.h    15 Jan 2020 22:06:59 -0000      1.21
+++ extern.h    16 May 2021 15:36:27 -0000
@@ -69,7 +69,7 @@ void  dologout(int);
 void   fatal(char *);
 int    ftpd_pclose(FILE *, pid_t);
 FILE   *ftpd_ls(const char *, pid_t *);
-int     get_line(char *, int, FILE *);
+int     get_line(char *, int);
 void   ftpdlogwtmp(char *, char *, char *);
 void   lreply(int, const char *, ...);
 void   makedir(char *);
Index: ftpcmd.y
===================================================================
RCS file: /cvs/src/libexec/ftpd/ftpcmd.y,v
retrieving revision 1.69
diff -u -p -r1.69 ftpcmd.y
--- ftpcmd.y    4 Mar 2020 20:17:48 -0000       1.69
+++ ftpcmd.y    16 May 2021 15:38:07 -0000
@@ -1089,10 +1089,9 @@ lookup(p, cmd)
  * get_line - a hacked up version of fgets to ignore TELNET escape codes.
  */
 int
-get_line(s, n, iop)
+get_line(s, n)
        char *s;
        int n;
-       FILE *iop;
 {
        int c;
        char *cs;
@@ -1111,21 +1110,21 @@ get_line(s, n, iop)
                if (c == 0)
                        tmpline[0] = '\0';
        }
-       while ((c = getc(iop)) != EOF) {
+       while ((c = getc(stdin)) != EOF) {
                c &= 0377;
                if (c == IAC) {
-                   if ((c = getc(iop)) != EOF) {
+                   if ((c = getc(stdin)) != EOF) {
                        c &= 0377;
                        switch (c) {
                        case WILL:
                        case WONT:
-                               c = getc(iop);
+                               c = getc(stdin);
                                printf("%c%c%c", IAC, DONT, 0377&c);
                                (void) fflush(stdout);
                                continue;
                        case DO:
                        case DONT:
-                               c = getc(iop);
+                               c = getc(stdin);
                                printf("%c%c%c", IAC, WONT, 0377&c);
                                (void) fflush(stdout);
                                continue;
@@ -1144,7 +1143,7 @@ get_line(s, n, iop)
                         * This prevents the command to be split up into
                         * multiple commands.
                         */
-                       while (c != '\n' && (c = getc(iop)) != EOF)
+                       while (c != '\n' && (c = getc(stdin)) != EOF)
                                ;
                        return (-2);
                }
@@ -1204,7 +1203,7 @@ yylex()
 
                case CMD:
                        (void) alarm((unsigned) timeout);
-                       n = get_line(cbuf, sizeof(cbuf)-1, stdin);
+                       n = get_line(cbuf, sizeof(cbuf)-1);
                        if (n == -1) {
                                reply(221, "You could at least say goodbye.");
                                dologout(0);
Index: ftpd.c
===================================================================
RCS file: /cvs/src/libexec/ftpd/ftpd.c,v
retrieving revision 1.229
diff -u -p -r1.229 ftpd.c
--- ftpd.c      15 Jan 2020 22:06:59 -0000      1.229
+++ ftpd.c      16 May 2021 15:44:17 -0000
@@ -2179,7 +2179,7 @@ myoob(void)
        if (!transflag)
                return;
        cp = tmpline;
-       ret = get_line(cp, sizeof(tmpline)-1, stdin);
+       ret = get_line(cp, sizeof(tmpline)-1);
        if (ret == -1) {
                reply(221, "You could at least say goodbye.");
                dologout(0);

Reply via email to