| --- Makefile.am 2012-10-10 12:30:39.442107211 +0000 |
| +++ Makefile.am 2012-10-10 12:31:17.235528699 +0000 |
| @@ -16,7 +16,7 @@ |
| |
| SUBDIRS = m4 po $(REGEX_BUILD) pith pico alpine $(WEB_PUBCOOKIE_BUILD) $(WEB_BUILD) |
| |
| -BUILT_SOURCES = c-client.d c-client $(WEB_PUBCOOKIE_LINK) |
| +BUILT_SOURCES = $(WEB_PUBCOOKIE_LINK) |
| |
| CLEANFILES = c-client |
| |
| @@ -38,3 +38,4 @@ |
| man_MANS = doc/alpine.1 doc/pico.1 doc/pilot.1 doc/rpdump.1 doc/rpload.1 |
| |
| ACLOCAL_AMFLAGS = -I m4 |
| +AM_LDFLAGS = -lc-client |
| --- pico/Makefile.am 2012-10-10 13:01:06.851900583 +0000 |
| +++ pico/Makefile.am 2012-10-10 13:07:40.960017458 +0000 |
| @@ -24,8 +24,9 @@ |
| |
| pilot_LDADD = $(LDADD) $(INTLLIBS) |
| |
| -LDADD = ../c-client/utf8.o libpico.a osdep/libpicoosd.a \ |
| +LDADD = libpico.a osdep/libpicoosd.a \ |
| ../pith/osdep/libpithosd.a ../pith/charconv/libpithcc.a |
| +AM_LDFLAGS = -lc-client |
| |
| noinst_LIBRARIES = libpico.a |
| |
| diff --git a/alpine/callbacks.c b/alpine/callbacks.c |
| new file mode 100644 |
| index 0000000..e92beb5 |
| --- /dev/null |
| +++ alpine/callbacks.c |
| @@ -0,0 +1,184 @@ |
| +/* ======================================================================== |
| + * Copyright 1988-2007 University of Washington |
| + * |
| + * Licensed under the Apache License, Version 2.0 (the "License"); |
| + * you may not use this file except in compliance with the License. |
| + * You may obtain a copy of the License at |
| + * |
| + * http://www.apache.org/licenses/LICENSE-2.0 |
| + * |
| + * |
| + * ======================================================================== |
| + */ |
| + |
| +#include <stdio.h> |
| +#include <signal.h> |
| +#include <imap/c-client.h> |
| + |
| +/* Excellent reasons to hate ifdefs, and why my real code never uses them */ |
| + |
| +#ifndef unix |
| +# define unix 0 |
| +#endif |
| + |
| +#if unix |
| +# define UNIXLIKE 1 |
| +# define MACOS 0 |
| +# include <pwd.h> |
| +#else |
| +# define UNIXLIKE 0 |
| +# ifdef noErr |
| +# define MACOS 1 |
| +# include <Memory.h> |
| +# else |
| +# define MACOS 0 |
| +# endif |
| +#endif |
| + |
| +char *curhst = NIL; /* currently connected host */ |
| +char *curusr = NIL; /* current login user */ |
| + |
| + |
| +/* Interfaces to C-client */ |
| + |
| + |
| +void mm_searched (MAILSTREAM *stream,unsigned long number) |
| +{ |
| +} |
| + |
| + |
| +void mm_exists (MAILSTREAM *stream,unsigned long number) |
| +{ |
| +} |
| + |
| + |
| +void mm_expunged (MAILSTREAM *stream,unsigned long number) |
| +{ |
| +} |
| + |
| + |
| +void mm_flags (MAILSTREAM *stream,unsigned long number) |
| +{ |
| +} |
| + |
| + |
| +void mm_notify (MAILSTREAM *stream,char *string,long errflg) |
| +{ |
| + mm_log (string,errflg); |
| +} |
| + |
| + |
| +void mm_list (MAILSTREAM *stream,int delimiter,char *mailbox,long attributes) |
| +{ |
| + putchar (' '); |
| + if (delimiter) putchar (delimiter); |
| + else fputs ("NIL",stdout); |
| + putchar (' '); |
| + fputs (mailbox,stdout); |
| + if (attributes & LATT_NOINFERIORS) fputs (", no inferiors",stdout); |
| + if (attributes & LATT_NOSELECT) fputs (", no select",stdout); |
| + if (attributes & LATT_MARKED) fputs (", marked",stdout); |
| + if (attributes & LATT_UNMARKED) fputs (", unmarked",stdout); |
| + putchar ('\n'); |
| +} |
| + |
| + |
| +void mm_lsub (MAILSTREAM *stream,int delimiter,char *mailbox,long attributes) |
| +{ |
| + putchar (' '); |
| + if (delimiter) putchar (delimiter); |
| + else fputs ("NIL",stdout); |
| + putchar (' '); |
| + fputs (mailbox,stdout); |
| + if (attributes & LATT_NOINFERIORS) fputs (", no inferiors",stdout); |
| + if (attributes & LATT_NOSELECT) fputs (", no select",stdout); |
| + if (attributes & LATT_MARKED) fputs (", marked",stdout); |
| + if (attributes & LATT_UNMARKED) fputs (", unmarked",stdout); |
| + putchar ('\n'); |
| +} |
| + |
| + |
| +void mm_status (MAILSTREAM *stream,char *mailbox,MAILSTATUS *status) |
| +{ |
| + printf (" Mailbox %s",mailbox); |
| + if (status->flags & SA_MESSAGES) printf (", %lu messages",status->messages); |
| + if (status->flags & SA_RECENT) printf (", %lu recent",status->recent); |
| + if (status->flags & SA_UNSEEN) printf (", %lu unseen",status->unseen); |
| + if (status->flags & SA_UIDVALIDITY) printf (", %lu UID validity", |
| + status->uidvalidity); |
| + if (status->flags & SA_UIDNEXT) printf (", %lu next UID",status->uidnext); |
| + printf ("\n"); |
| +} |
| + |
| + |
| +void mm_log (char *string,long errflg) |
| +{ |
| + switch ((short) errflg) { |
| + case NIL: |
| + printf ("[%s]\n",string); |
| + break; |
| + case PARSE: |
| + case WARN: |
| + printf ("%%%s\n",string); |
| + break; |
| + case ERROR: |
| + printf ("?%s\n",string); |
| + break; |
| + } |
| +} |
| + |
| + |
| +void mm_dlog (char *string) |
| +{ |
| + puts (string); |
| +} |
| + |
| + |
| +void mm_login (NETMBX *mb,char *user,char *pwd,long trial) |
| +{ |
| + char *s,tmp[MAILTMPLEN]; |
| + if (curhst) fs_give ((void **) &curhst); |
| + curhst = (char *) fs_get (1+strlen (mb->host)); |
| + strcpy (curhst,mb->host); |
| + sprintf (s = tmp,"{%s/%s",mb->host,mb->service); |
| + if (*mb->user) sprintf (tmp+strlen (tmp),"/user=%s",strcpy (user,mb->user)); |
| + if (*mb->authuser) sprintf (tmp+strlen (tmp),"/authuser=%s",mb->authuser); |
| + if (*mb->user) strcat (s = tmp,"} password:"); |
| + else { |
| + printf ("%s} username: ",tmp); |
| + fgets (user,NETMAXUSER-1,stdin); |
| + user[NETMAXUSER-1] = '\0'; |
| + if (s = strchr (user,'\n')) *s = '\0'; |
| + s = "password: "; |
| + } |
| + if (curusr) fs_give ((void **) &curusr); |
| + curusr = cpystr (user); |
| + strcpy (pwd,getpass (s)); |
| +} |
| + |
| + |
| +void mm_critical (MAILSTREAM *stream) |
| +{ |
| +} |
| + |
| + |
| +void mm_nocritical (MAILSTREAM *stream) |
| +{ |
| +} |
| + |
| + |
| +long mm_diskerror (MAILSTREAM *stream,long errcode,long serious) |
| +{ |
| +#if UNIXLIKE |
| + kill (getpid (),SIGSTOP); |
| +#else |
| + abort (); |
| +#endif |
| + return NIL; |
| +} |
| + |
| + |
| +void mm_fatal (char *string) |
| +{ |
| + printf ("?%s\n",string); |
| +} |
| diff --git a/pico/Makefile.am b/pico/Makefile.am |
| index f5f694b..e782324 100644 |
| --- pico/Makefile.am |
| +++ pico/Makefile.am |
| @@ -16,9 +16,9 @@ SUBDIRS = osdep |
| |
| bin_PROGRAMS = pico pilot |
| |
| -pico_SOURCES = main.c utf8stub.c |
| +pico_SOURCES = main.c utf8stub.c ../alpine/callbacks.c |
| |
| -pilot_SOURCES = pilot.c utf8stub.c |
| +pilot_SOURCES = pilot.c utf8stub.c ../alpine/callbacks.c |
| |
| pico_LDADD = $(LDADD) $(INTLLIBS) |
| |
| --- alpine/Makefile.am 2012-10-11 07:53:35.749024355 +0000 |
| +++ alpine/Makefile.am 2012-10-11 07:54:15.931528157 +0000 |
| @@ -35,11 +35,11 @@ |
| LDADD = ../pico/libpico.a ../pico/osdep/libpicoosd.a \ |
| ../pith/libpith.a ../pith/osdep/libpithosd.a \ |
| ../pith/charconv/libpithcc.a \ |
| - osdep/libpineosd.a ../c-client/c-client.a |
| + osdep/libpineosd.a |
| |
| AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include -DLOCALEDIR=\"$(localedir)\" |
| |
| -AM_LDFLAGS = `cat $(top_srcdir)/c-client/LDFLAGS` |
| +AM_LDFLAGS = -lc-client |
| |
| CLEANFILES = date.c |
| |