00001
00027
00028
00029
00030
00031
00032
00033
00034 #include <sent/stddefs.h>
00035 #include <sent/tcpip.h>
00036
00037 #ifdef HAVE_ZLIB
00038 #include <zlib.h>
00039 #endif
00040
00041
00052 char *
00053 getl(char *buf, int maxlen, FILE *fp)
00054 {
00055 int newline;
00056
00057 while(
00058 #ifdef HAVE_ZLIB
00059 gzgets((gzFile)fp, buf, maxlen) != Z_NULL
00060 #else
00061 fgets(buf, maxlen, fp) != NULL
00062 #endif
00063 ) {
00064 newline = strlen(buf)-1;
00065 if (buf[newline] == '\n') {
00066 buf[newline] = '\0';
00067 newline--;
00068 }
00069 if (newline >= 0 && buf[newline] == '\r') buf[newline] = '\0';
00070 if (buf[0] == '\0') continue;
00071 return buf;
00072 }
00073 return NULL;
00074 }
00075
00086 char *
00087 getl_fp(char *buf, int maxlen, FILE *fp)
00088 {
00089 int newline;
00090
00091 while(fgets(buf, maxlen, fp) != NULL) {
00092 newline = strlen(buf)-1;
00093 if (buf[newline] == '\n') {
00094 buf[newline] = '\0';
00095 newline--;
00096 }
00097 if (newline >= 0 && buf[newline] == '\r') buf[newline] = '\0';
00098 if (buf[0] == '\0') continue;
00099 return buf;
00100 }
00101 return NULL;
00102 }
00103
00104
00105
00106
00107
00117 char *
00118 get_line_from_stdin(char *buf, int buflen, char *prompt)
00119 {
00120 char *p;
00121
00122 do {
00123 fprintf(stderr, "%s",prompt);
00124 if (fgets(buf, buflen, stdin) == NULL) {
00125 return(NULL);
00126 }
00127
00128 p = buf + strlen(buf) - 1;
00129 if (p >= buf && *p == '\n') {
00130 *(p --) = '\0';
00131 }
00132 if (p >= buf && *p == '\r') {
00133 *(p --) = '\0';
00134 }
00135
00136 while(p >= buf && *p == ' ') {
00137 *(p --) = '\0';
00138 }
00139 } while (!buf[0]);
00140
00141 return(buf);
00142 }