1/* pop.h: Header file for the "pop.c" client POP3 protocol. 2 Copyright (C) 1991, 1993, 2001, 2002, 2003, 2004, 3 2005, 2006, 2007 Free Software Foundation, Inc. 4 Written by Jonathan Kamens, jik@security.ov.com. 5 6This file is part of GNU Emacs. 7 8GNU Emacs is free software; you can redistribute it and/or modify 9it under the terms of the GNU General Public License as published by 10the Free Software Foundation; either version 2, or (at your option) 11any later version. 12 13GNU Emacs is distributed in the hope that it will be useful, 14but WITHOUT ANY WARRANTY; without even the implied warranty of 15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16GNU General Public License for more details. 17 18You should have received a copy of the GNU General Public License 19along with GNU Emacs; see the file COPYING. If not, write to 20the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 21Boston, MA 02110-1301, USA. */ 22 23#include <stdio.h> 24 25#define GETLINE_MIN 1024 /* the getline buffer starts out this */ 26 /* size */ 27#define GETLINE_INCR 1024 /* the getline buffer is grown by this */ 28 /* size when it needs to grow */ 29 30extern char pop_error[]; 31extern int pop_debug; 32 33struct _popserver 34{ 35 int file, data; 36 char *buffer; 37 int buffer_size, buffer_index; 38 int in_multi; 39 int trash_started; 40}; 41 42typedef struct _popserver *popserver; 43 44/* 45 * Valid flags for the pop_open function. 46 */ 47 48#define POP_NO_KERBEROS (1<<0) 49#define POP_NO_HESIOD (1<<1) 50#define POP_NO_GETPASS (1<<2) 51 52#ifdef __STDC__ 53#define _ARGS(a) a 54#else 55#define _ARGS(a) () 56#endif 57 58extern popserver pop_open _ARGS((char *host, char *username, char *password, 59 int flags)); 60extern int pop_stat _ARGS((popserver server, int *count, int *size)); 61extern int pop_list _ARGS((popserver server, int message, int **IDs, 62 int **size)); 63extern int pop_retrieve _ARGS((popserver server, int message, int markfrom, 64 char **)); 65extern int pop_retrieve_first _ARGS((popserver server, int message, 66 char **response)); 67extern int pop_retrieve_next _ARGS((popserver server, char **line)); 68extern int pop_retrieve_flush _ARGS((popserver server)); 69extern int pop_top_first _ARGS((popserver server, int message, int lines, 70 char **response)); 71extern int pop_top_next _ARGS((popserver server, char **line)); 72extern int pop_top_flush _ARGS((popserver server)); 73extern int pop_multi_first _ARGS((popserver server, char *command, 74 char **response)); 75extern int pop_multi_next _ARGS((popserver server, char **line)); 76extern int pop_multi_flush _ARGS((popserver server)); 77extern int pop_delete _ARGS((popserver server, int message)); 78extern int pop_noop _ARGS((popserver server)); 79extern int pop_last _ARGS((popserver server)); 80extern int pop_reset _ARGS((popserver server)); 81extern int pop_quit _ARGS((popserver server)); 82extern void pop_close _ARGS((popserver)); 83 84#undef _ARGS 85 86/* arch-tag: 76cc5f58-8e86-48fa-bc72-a7c6cb1c4f1c 87 (do not change this comment) */ 88