aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src/pop.c
diff options
context:
space:
mode:
authorRichard M. Stallman1994-10-18 07:34:59 +0000
committerRichard M. Stallman1994-10-18 07:34:59 +0000
commit7a481e50f633f5ffa09722ac2bc6fdec941a8230 (patch)
treec842f1a254b9f7d867a8f6e6fb974c3f7fd5eede /lib-src/pop.c
parent0178cafafc47a895138e1245ca29f1cee7567f4c (diff)
downloademacs-7a481e50f633f5ffa09722ac2bc6fdec941a8230.tar.gz
emacs-7a481e50f633f5ffa09722ac2bc6fdec941a8230.zip
Don't declare malloc, realloc, free.
Don't include string.h or strings.h. Include des.h before krb.h. Do declare my_strstr. (getline): Really use my_strstr. Leave one empty place in server->buffer, and put a null at the end of the data in it.
Diffstat (limited to 'lib-src/pop.c')
-rw-r--r--lib-src/pop.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 9f5b5476f50..725a9d87cd0 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -26,10 +26,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
26#include <pop.h> 26#include <pop.h>
27#ifdef sun 27#ifdef sun
28#include <malloc.h> 28#include <malloc.h>
29#else
30extern char *malloc (/* unsigned */);
31extern char *realloc (/* char *, unsigned */);
32extern void free (/* char * */);
33#endif 29#endif
34#endif 30#endif
35#ifdef HESIOD 31#ifdef HESIOD
@@ -43,15 +39,13 @@ extern void free (/* char * */);
43extern struct servent *hes_getservbyname (/* char *, char * */); 39extern struct servent *hes_getservbyname (/* char *, char * */);
44#endif 40#endif
45#include <pwd.h> 41#include <pwd.h>
46#include <string.h>
47#include <strings.h>
48#include <netdb.h> 42#include <netdb.h>
49#include <errno.h> 43#include <errno.h>
50#include <stdio.h> 44#include <stdio.h>
51#ifdef KERBEROS 45#ifdef KERBEROS
52#ifndef KRB5 46#ifndef KRB5
53#include <krb.h>
54#include <des.h> 47#include <des.h>
48#include <krb.h>
55#else /* KRB5 */ 49#else /* KRB5 */
56#include <krb5/krb5.h> 50#include <krb5/krb5.h>
57#include <krb5/ext-proto.h> 51#include <krb5/ext-proto.h>
@@ -85,6 +79,8 @@ static int gettermination (/* popserver */);
85#endif 79#endif
86static void pop_trash (/* popserver */); 80static void pop_trash (/* popserver */);
87 81
82static char *my_strstr ();
83
88#define ERROR_MAX 80 /* a pretty arbitrary size */ 84#define ERROR_MAX 80 /* a pretty arbitrary size */
89#define POP_PORT 110 85#define POP_PORT 110
90#define KPOP_PORT 1109 86#define KPOP_PORT 1109
@@ -1171,7 +1167,7 @@ getline (server)
1171 1167
1172 if (server->data) 1168 if (server->data)
1173 { 1169 {
1174 char *cp = strstr (server->buffer + server->buffer_index, "\r\n"); 1170 char *cp = my_strstr (server->buffer + server->buffer_index, "\r\n");
1175 if (cp) 1171 if (cp)
1176 { 1172 {
1177 int found; 1173 int found;
@@ -1214,7 +1210,7 @@ getline (server)
1214 } 1210 }
1215 } 1211 }
1216 ret = read (server->file, server->buffer + server->data, 1212 ret = read (server->file, server->buffer + server->data,
1217 server->buffer_size - server->data); 1213 server->buffer_size - server->data - 1);
1218 if (ret < 0) 1214 if (ret < 0)
1219 { 1215 {
1220 strcpy (pop_error, GETLINE_ERROR); 1216 strcpy (pop_error, GETLINE_ERROR);
@@ -1231,9 +1227,11 @@ getline (server)
1231 } 1227 }
1232 else 1228 else
1233 { 1229 {
1234 char *cp = strstr (server->buffer, "\r\n"); 1230 char *cp;
1235 server->data += ret; 1231 server->data += ret;
1232 server->buffer[server->data] = '\0';
1236 1233
1234 cp = my_strstr (server->buffer, "\r\n");
1237 if (cp) 1235 if (cp)
1238 { 1236 {
1239 int data_used = (cp + 2) - server->buffer; 1237 int data_used = (cp + 2) - server->buffer;