Mercurial > emacs
view lib-src/cvtmail.c @ 22293:0544aa57ff27
(cperl-style-alist): New variable, since `c-mode'
is no longer loaded.
- (Somebody who uses the styles should check that they work OK!)
- (a lot of work is needed, especially with new
`cperl-fix-line-spacing').
Old value of style is memorized when choosing a new style, may be
restored from the same menu.
(cperl-perldoc, cperl-pod-to-manpage): New commands; thanks to
Anthony Foiani <afoiani@uswest.com> and Nick Roberts
<Nick.Roberts@src.bae.co.uk>.
(`Perl doc', `Regexp'): New submenus (latter to allow short displays).
(cperl-clobber-lisp-bindings): New cfg variable.
(cperl-find-pods-heres): $a->y() is not y///.
(cperl-after-block-p): Add save-excursion.
(cperl-init-faces): Was failing.
Init faces when loading `ps-print'.
(cperl-toggle-autohelp): New command.
(cperl-electric-paren): `while SPACE LESS' was buggy.
(cperl-init-faces): `-text' in `[-text => 1]' was not highlighted.
(cperl-after-block-p): was FALSE after `sub f {}'.
(cperl-electric-keyword): `foreachmy', `formy' expanded too,
Expands `=pod-directive'.
(cperl-linefeed): behaves reasonable in POD-directive lines.
(cperl-message-electric-keyword): new cfg variable.
(cperl-electric-keyword): print a message, governed by
`cperl-message-electric-keyword'.
(cperl-electric-paren): Typing `}' was not checking for being
block or not.
(cperl-beautify-regexp-piece): Did not know about lookbehind;
finding *which* level to work with was not intuitive.
(cperl-beautify-levels): New command.
(cperl-electric-keyword): Allow here-docs contain `=head1'
and friends for keyword expansion.
Fix for broken `font-lock-unfontify-region-function'. Should
preserve `syntax-table' properties even with `lazy-lock'.
(cperl-indent-region-fix-else): New command.
(cperl-fix-line-spacing): New command.
(cperl-invert-if-unless): New command (C-c C-t and in Menu).
(cperl-hints): mention 20.2's goods/bads.
(cperl-extra-newline-before-brace-multiline): Started to use it.
(cperl-break-one-line-blocks-when-indent): New cfg variable.
(cperl-fix-hanging-brace-when-indent): New cfg variable.
(cperl-merge-trailing-else): New cfg variable.
Workaround for another `font-lock's `syntax-table' text-property bug.
`zerop' could be applied to nil.
At last, may work with `font-lock' without setting `cperl-font-lock'.
(cperl-indent-region-fix-constructs): Renamed from
`cperl-indent-region-fix-constructs'.
(cperl-fix-line-spacing): could be triggered inside strings, would not
know what to do with BLOCKs of map/printf/etc.
(cperl-merge-trailing-else): Handle `continue' too.
(cperl-fix-line-spacing): Likewise.
(cperl-calculate-indent): Knows about map/printf/etc before {BLOCK};
treat after-comma lines as continuation lines.
(cperl-mode): `continue' made electric.
(cperl-electric-keyword): Electric `do' inserts `do/while'.
(cperl-fontify-syntaxically): New function.
(cperl-syntaxify-by-font-lock): New cfg variable.
Make syntaxification to be autoredone via `font-lock',
switched on by `cperl-syntaxify-by-font-lock', off by default so far.
Remove some commented out chunks.
(cperl-set-style-back): Old value of style is memorized when
choosing a new style, may be restored from the same menu.
Mode-documentation added to micro-docs.
(cperl-praise): updated.
(cperl-toggle-construct-fix): New command. Added on C-c C-w and menu.
(auto-fill-mode): added on C-c C-f and menu.
(cperl-style-alist): `PerlStyle' style added.
(cperl-find-pods-heres): Message for termination of scan corrected.
(cperl-speed): New variable with hints.
(cperl-electric-else): Make backspace electric after
expansion of `else/continue' too.
Fixed customization to honor cperl-hairy.
Created customization groups.
All the compile-time warnings fixed.
(cperl-syntaxify-by-font-lock): Interaction with `font-lock-hot-pass'
fixed.
(cperl-after-block-and-statement-beg): It is BLOCK if we reach lim
when backup sexp.
(cperl-after-block-p, cperl-after-expr-p): Likewise.
(cperl-indent-region): Make a marker for END - text added/removed.
(cperl-style-alist): Include `cperl-merge-trailing-else'
where the value is clear.
(cperl-styles-entries): Likewise.
(cperl-tips, cperl-problems): Improvements to docs.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 30 May 1998 15:43:16 +0000 |
parents | fdac027af4e1 |
children | e3eadbc9fda7 |
line wrap: on
line source
/* Copyright (C) 1985, 1994 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 2, 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, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 */ #include <stdio.h> char *malloc (); char *realloc (); char *getenv (); char *xmalloc (); char *xrealloc (); void skip_to_lf (); void sysfail (); int 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]; 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 (!mddf) sysfail (mdd); if (argc > 1) mfile = argv[1]; else { mfile = (char *) xmalloc (strlen (hd) + 7); strcpy (mfile, hd); strcat (mfile, "/OMAIL"); } mfilef = fopen (mfile, "w"); if (!mfilef) sysfail (mfile); 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"); if (!cff) perror (cf); else { while ((c = getc(cff)) != EOF) putc (c, mfilef); putc ('\n', mfilef); skip_to_lf (mddf); fclose (cff); } } fclose (mddf); fclose (mfilef); return 0; } void skip_to_lf (stream) FILE *stream; { register int c; while ((c = getc(stream)) != EOF && c != '\n') ; } void error (s1, s2) char *s1, *s2; { fprintf (stderr, "cvtmail: "); fprintf (stderr, s1, s2); fprintf (stderr, "\n"); } /* Print error message and exit. */ void fatal (s1, s2) char *s1, *s2; { error (s1, s2); exit (1); } void sysfail (s) char *s; { fprintf (stderr, "cvtmail: "); perror (s); exit (1); } char * xmalloc (size) unsigned size; { char *result = malloc (size); if (!result) fatal ("virtual memory exhausted", 0); return result; } char * xrealloc (ptr, size) char *ptr; unsigned size; { char *result = realloc (ptr, size); if (!result) fatal ("virtual memory exhausted"); return result; }