view lib-src/cvtmail.c @ 1018:5fd29acd3db7

* xfns.c (x_set_name): Take new argument EXPLICIT, instead of OLDVAL. (x_explicitly_set_name, x_implicitly_set_name): New functions. (x_frame_parms): Use x_explicitly_set_name here. (x_window): Use x_implicitly_set_name here. * xfns.c (Fx_create_frame): Initialize f->display.x->wm_hints here. * xfns.c (x_set_name): Call x_set_text_property with a Lisp_Object string as an argument, rather than a pointer and a length. * xfns.c (x_get_arg): Accept a new type - symbol. If we've retrieved a string from the xrdb database and the user wants a symbol, intern it. (Fx_create_frame): Use the symbol type here. * xfns.c (x_figure_window_size, x_icon, Fx_create_frame): Use values from enum resource_types for the last arg to x_get_arg, instead of passing numbers. * xfns.c (Fx_create_frame): When setting up the scroll bars, use the type parameter to x_default_parameter, rather than prefixing the resource name with a question mark. * xfns.c [not HAVE_X11] (Fx_create_frame): The resource which determines whether or not to use a bitmapped icon is called "IconType", not "BitmapIcon". Update this. * xfns.c (x_set_name): Used x_set_text_property instead of XSetWMName and XSetWMIconName. * xfns.c (select_visual): Fetch the visual id directly from v; don't call XVisualIDFromVisual, since that function is not available in earlier versions of X. * xfns.c (x_make_gc): cursor_bits can't be local to the function; it's static. * xfns.c (Fx_create_frame): Make the default for the icon-type parameter nil, not t. It seems to cause problems with some X servers.
author Jim Blandy <jimb@redhat.com>
date Wed, 19 Aug 1992 06:46:08 +0000
parents e48c0f5e6696
children 8cc2a5d2e728
line wrap: on
line source

/* 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");
}