/* ps2mf.c */ #define VERSION "1.1 (beta)" #include #ifndef AIX #include #endif #include #include "defines.h" #include "myopen.h" #include "ps2mf.h" #include "ps2mfutl.h" #include "getopt.h" #ifdef MSDOS #include #endif AFM_info_tp * AFM_chars; configuration_info_tp * TeX_configuration; ignore_info_tp * ignore_list; char font_name [255], coding_scheme[255]; float italic_angle; bool fixed_pitch; int x_height, font_space, font_quad; bool x_height_is_defined; char buffer [255], obuffer [255]; char * param; void give_usage () { fprintf (stderr, "Usage: ps2mf \n"); fprintf (stderr, " [-p [.ps]][-a [.afm]]\n"); fprintf (stderr, " [-m [.mf]][-c [.cfg]]\n"); exit (UNSUCCESSFUL); } FILE * ps_file, * afm_file, * mf_file, * conf_file; #ifdef __STDC__ void preamble (int argc, char ** argv) #else void preamble (argc, argv) int argc; char ** argv; #endif { int c, i, lastext; bool ps_file_defined, afm_file_defined, mf_file_defined, conf_file_defined; char * ps_file_name, * afm_file_name, * mf_file_name, * conf_file_name, * base_file_name; ps_file_defined = FALSE; afm_file_defined = FALSE; mf_file_defined = FALSE; conf_file_defined = FALSE; while ((c = getopt (argc, argv, "p:m:a:c:")) != EOF) { switch (c) { case 'p': { ps_file_name = optarg; ps_file_defined = TRUE; } break; case 'm': { mf_file_name = optarg; mf_file_defined = TRUE; } break; case 'a': { afm_file_name = optarg; afm_file_defined = TRUE; } break; case 'c': { conf_file_name = optarg; conf_file_defined = TRUE; } break; case '?': { give_usage (); } break; } } if (! argv [optind]) give_usage (); base_file_name = (char *) my_malloc (sizeof (char) * strlen (argv [optind]) + 5); strcpy (base_file_name, argv [optind]); lastext = -1; for (i = 0; base_file_name [i]; i ++) { if (base_file_name [i] == '.') lastext = i; else { if (base_file_name [i] == '/') lastext = -1; } } if (lastext != -1) base_file_name [lastext] = '\0'; ps_file = my_open (ps_file_defined ? ps_file_name : base_file_name, ".ps", "r"); afm_file = my_open (afm_file_defined ? afm_file_name : base_file_name, ".afm", "r"); mf_file = my_open (mf_file_defined ? mf_file_name : base_file_name, ".mf", "w"); conf_file = my_open (conf_file_defined ? conf_file_name : base_file_name, ".cfg", "r"); } void postamble () { fclose (ps_file); fclose (afm_file); fclose (mf_file); fclose (conf_file); } #ifdef __STDC__ void main (int argc, char ** argv) #else void main (argc, argv) int argc; char ** argv; #endif { fprintf (stderr, "This is ps2mf, version %s.\n", VERSION); preamble (argc, argv); fprintf (stderr, " Starting to read configuration-file\n"); parse_config (); fprintf (stderr, " Starting to read fontmetric-file\n"); parse_AFM (); fprintf (stderr, " Starting to read postscript-file\n"); parse_PS (); postamble (); exit (SUCCESSFUL); }