mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-21 06:55:39 +00:00
entered into RCS
This commit is contained in:
parent
a2535589a9
commit
518dd72246
147
lib-src/cvtmail.c
Normal file
147
lib-src/cvtmail.c
Normal file
@ -0,0 +1,147 @@
|
||||
/* Copyright (C) 1985 Free Software Foundation
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 1, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
/* cvtmail:
|
||||
* Program to convert oldstyle goslings emacs mail directories into
|
||||
* gnu-rmail format. Program expects a directory called Messages to
|
||||
* exist in your home directory, containing individual mail messages in
|
||||
* separate files in the standard gosling emacs mail reader format.
|
||||
*
|
||||
* Program takes one argument: an output file. THis file will contain
|
||||
* all the messages in Messages directory, in berkeley mail format.
|
||||
* If no output file is mentioned, messages are put in ~/OMAIL.
|
||||
*
|
||||
* In order to get rmail to read the messages, the resulting file must
|
||||
* be mv'ed to ~/mbox, and then have rmail invoked on them.
|
||||
*
|
||||
* Author: Larry Kolodney, 1985
|
||||
|
||||
* RMS, 2 Sept 85: Removed fix maximums on file name sizes.
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
main (argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
char *hd;
|
||||
char *md;
|
||||
char *mdd;
|
||||
char *mfile;
|
||||
char *cf;
|
||||
int cflen;
|
||||
FILE *mddf;
|
||||
FILE *mfilef;
|
||||
FILE *cff;
|
||||
char pre[10], post[100];
|
||||
char name[14];
|
||||
int c;
|
||||
|
||||
hd = (char *) getenv ("HOME");
|
||||
|
||||
md = (char *) xmalloc (strlen (hd) + 10);
|
||||
strcpy (md, hd);
|
||||
strcat (md, "/Messages");
|
||||
|
||||
mdd = (char *) xmalloc (strlen (md) + 11);
|
||||
strcpy (mdd, md);
|
||||
strcat (mdd, "/Directory");
|
||||
|
||||
cflen = 100;
|
||||
cf = (char *) xmalloc (cflen);
|
||||
|
||||
mddf = fopen (mdd, "r");
|
||||
if (argc > 1)
|
||||
mfilef = fopen (argv[1], "w");
|
||||
else
|
||||
{
|
||||
mfile = (char *) xmalloc (strlen (hd) + 7);
|
||||
strcpy (mfile, hd);
|
||||
strcat (mfile, "/OMAIL");
|
||||
mfilef = fopen (mfile, "w");
|
||||
}
|
||||
skip_to_lf (mddf);
|
||||
while (fscanf (mddf, "%4c%14[0123456789]", pre, name) != EOF)
|
||||
{
|
||||
if (cflen < strlen (md) + strlen (name) + 2)
|
||||
{
|
||||
cflen = strlen (md) + strlen (name) + 2;
|
||||
cf = (char *) xrealloc (cf, cflen);
|
||||
}
|
||||
strcpy (cf, md);
|
||||
strcat (cf,"/");
|
||||
strcat (cf, name);
|
||||
cff = fopen (cf, "r");
|
||||
while ((c = getc(cff)) != EOF)
|
||||
putc (c, mfilef);
|
||||
putc ('\n', mfilef);
|
||||
skip_to_lf (mddf);
|
||||
fclose (cff);
|
||||
}
|
||||
fclose (mddf);
|
||||
fclose (mfilef);
|
||||
return 0;
|
||||
}
|
||||
|
||||
skip_to_lf (stream)
|
||||
FILE *stream;
|
||||
{
|
||||
register int c;
|
||||
while ((c = getc(stream)) != '\n')
|
||||
;
|
||||
}
|
||||
|
||||
int
|
||||
xmalloc (size)
|
||||
int size;
|
||||
{
|
||||
int result = malloc (size);
|
||||
if (!result)
|
||||
fatal ("virtual memory exhausted", 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
xrealloc (ptr, size)
|
||||
char *ptr;
|
||||
int size;
|
||||
{
|
||||
int result = realloc (ptr, size);
|
||||
if (!result)
|
||||
fatal ("virtual memory exhausted");
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Print error message and exit. */
|
||||
|
||||
fatal (s1, s2)
|
||||
char *s1, *s2;
|
||||
{
|
||||
error (s1, s2);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
error (s1, s2)
|
||||
char *s1, *s2;
|
||||
{
|
||||
printf ("cvtmail: ");
|
||||
printf (s1, s2);
|
||||
printf ("\n");
|
||||
}
|
@ -3,20 +3,19 @@
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY. No author or distributor
|
||||
accepts responsibility to anyone for the consequences of using it
|
||||
or for whether it serves any particular purpose or works at all,
|
||||
unless he says so in writing. Refer to the GNU Emacs General Public
|
||||
License for full details.
|
||||
GNU Emacs is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 1, or (at your option)
|
||||
any later version.
|
||||
|
||||
Everyone is granted permission to copy, modify and redistribute
|
||||
GNU Emacs, but only under the conditions described in the
|
||||
GNU Emacs General Public License. A copy of this license is
|
||||
supposed to have been given to you along with GNU Emacs so you
|
||||
can know your rights and responsibilities. It should be in a
|
||||
file named COPYING. Among other things, the copyright notice
|
||||
and this notice must be preserved on all copies. */
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
|
||||
|
||||
#define NO_SHORTNAMES
|
||||
|
Loading…
Reference in New Issue
Block a user