--- Imakefile +++ Imakefile 2006-07-31 19:14:30.000000000 +0200 @@ -1,7 +1,3 @@ -#ifndef XCOMM -#define XCOMM # -#endif - XCOMM Top level Makefile for TransFig XCOMM TransFig: Facility for Translating Fig code @@ -24,6 +20,7 @@ XCOMM type "xmkmf", "make Makefiles", "m #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' +MFLAGS = XFIGLIBDIR=_DATA/xfig DEPLIBS = SUBDIRS = fig2dev transfig MakeSubdirs($(SUBDIRS)) --- doc/manual/Makefile +++ doc/manual/Makefile 2006-07-31 18:26:56.000000000 +0200 @@ -2,7 +2,7 @@ # TransFig makefile # -all: trans.tex +all: trans.tex manual.ps # translation into latex @@ -11,3 +11,8 @@ trans.tex: trans.fig Makefile clean:: rm -f trans.tex +manual.ps: manual.dvi + dvips -o $@ $^ + +manual.dvi: manual.tex trans.tex + latex manual.tex; latex manual.tex; latex manual.tex --- fig2dev/Imakefile +++ fig2dev/Imakefile 2006-07-31 19:08:56.000000000 +0200 @@ -20,13 +20,13 @@ XCOMM ****** XCOMM You should point XFIGLIBDIR to the same directory you did when you compiled XCOMM and installed xfig. -XFIGLIBDIR = /usr/local/lib/X11/xfig +XFIGLIBDIR = $(LIBDIR)/xfig XCOMM ****** XCOMM If your system has the strerror() function (doesn't have sys_errlist) then XCOMM comment out NEED_STRERROR with an XCOMM comment. -NEED_STRERROR = -DNEED_STRERROR +XCOMM NEED_STRERROR = -DNEED_STRERROR XCOMM The following probably only applies to Windows 9x/NT: XCOMM If your system can open files in text and binary modes and has the @@ -39,7 +39,7 @@ XCOMM Uncomment the following line if yo XCOMM inline functions. With the "INLINE" keyword, you should notice that XCOMM the display will be a bit faster in complex figures -XCOMM USEINLINE = -DUSE_INLINE +USEINLINE = -DUSE_INLINE XCOMM **************** XCOMM Change RGB if necessary, to point to your rgb.txt color database @@ -73,7 +73,7 @@ XCOMM Change XPMLIBDIR if necessary to p XCOMM Change XPMINC if necessary to point to the include file for xpm (xpm.h) XCOMM -XCOMM #define USEXPM +#define USEXPM #ifdef USEXPM XPMLIBDIR = $(USRLIBDIR) @@ -82,11 +82,11 @@ XPMINC = -I/usr/include/X11 XCOMM **************** XCOMM Uncomment the following to set default paper size to A4 -XCOMM DDA4 = -DA4 +DDA4 = -DA4 XCOMM **************** XCOMM Uncomment the following to set IBM Graphics Enhancement Cartridge -XCOMM DDIBMGEC = -DIBMGEC +DDIBMGEC = -DIBMGEC XCOMM **************** XCOMM Comment out the DDNFSS = ... line if you don't want NFSS2 font selection @@ -102,6 +102,7 @@ XCOMM probably want to include neither. DDNFSS = -DNFSS DDLATEX2E_GRAPHICS = -DLATEX2E_GRAPHICS +XCOMM Use modern garphics style, not older epsfig style XCOMM DDEPSFIG = -DEPSFIG XCOMM **************** @@ -126,23 +127,23 @@ XCOMM Comment out the next line if you h #ifdef I18N I18N_DEFS = -DI18N -FIG2DEV_LIBDIR = /usr/local/lib/fig2dev +FIG2DEV_LIBDIR = $(XFIGLIBDIR)/fig2dev I18N_DEV_DEFS = $(I18N_DEFS) -DFIG2DEV_LIBDIR=\\\"$(FIG2DEV_LIBDIR)\\\" install:: [ -d $(DESTDIR)$(FIG2DEV_LIBDIR) ] || mkdir $(DESTDIR)$(FIG2DEV_LIBDIR) - $(INSTALL) -c dev/japanese.ps $(DESTDIR)$(FIG2DEV_LIBDIR) + $(INSTALL) -m644 dev/japanese.ps $(DESTDIR)$(FIG2DEV_LIBDIR) ( cd $(DESTDIR)$(FIG2DEV_LIBDIR); \ rm -f ja.ps ja_JP.ps ja_JP.ujis.ps ja_JP.eucJP.ps ja_JP.EUC.ps; \ $(LN) japanese.ps ja.ps; $(LN) japanese.ps ja_JP.ps; \ $(LN) japanese.ps ja_JP.ujis.ps; $(LN) japanese.ps ja_JP.eucJP.ps; \ $(LN) japanese.ps ja_JP.EUC.ps ) - $(INSTALL) -c dev/korean.ps $(DESTDIR)$(FIG2DEV_LIBDIR) + $(INSTALL) -m644 dev/korean.ps $(DESTDIR)$(FIG2DEV_LIBDIR) ( cd $(DESTDIR)$(FIG2DEV_LIBDIR); \ rm -f ko.ps ko_KR.ps ko_KR.eucKR.ps ko_KR.EUC.ps; \ $(LN) korean.ps ko.ps; $(LN) korean.ps ko_KR.ps; \ $(LN) korean.ps ko_KR.eucKR.ps; $(LN) korean.ps ko_KR.EUC.ps ) - $(INSTALL) -c dev/cs_CZ.ps $(DESTDIR)$(FIG2DEV_LIBDIR) + $(INSTALL) -m644 dev/cs_CZ.ps $(DESTDIR)$(FIG2DEV_LIBDIR) ( cd $(DESTDIR)$(FIG2DEV_LIBDIR); \ rm -f hr_HR.ps hu_HU.ps pl_PL.ps ro_RO.ps sk_SK.ps sl_SI.ps; \ $(LN) cs_CZ.ps hr_HR.ps; $(LN) cs_CZ.ps hu_HU.ps; \ @@ -154,7 +155,7 @@ XCOMM ********************************** XCOMM *** You shouldn't have to change anything below this point *** XCOMM ************************************************************** -DIR_DEFS= -DBITMAPDIR=\\\"$(DESTDIR)$(XFIGLIBDIR)/bitmaps\\\" +DIR_DEFS= -DBITMAPDIR=\\\"$(XFIGLIBDIR)/bitmaps\\\" #ifdef USEPNG DUSEPNG = -DUSE_PNG @@ -233,7 +234,7 @@ install:: else (set -x; $(MKDIRHIER) $(DESTDIR)$(XFIGLIBDIR)/bitmaps ); fi ; \ echo Copying bitmap files for tk to $(DESTDIR)$(XFIGLIBDIR)/bitmaps ; \ for f in * ; do \ - $(INSTALL) -c $$f $(DESTDIR)$(XFIGLIBDIR)/bitmaps ; \ + $(INSTALL) -m644 $$f $(DESTDIR)$(XFIGLIBDIR)/bitmaps ; \ done) ; install.all:: --- fig2dev/fig2dev.c +++ fig2dev/fig2dev.c 2006-07-31 18:26:56.000000000 +0200 @@ -24,14 +24,20 @@ #include #endif #include +#include #include "fig2dev.h" #include "alloc.h" #include "object.h" #include "drivers.h" +#ifndef __GLIBC__ extern int fig_getopt(); extern char *optarg; extern int optind; +#else +# include +# define fig_getopt getopt +#endif char lang[40]; int parse_gridspec(); @@ -345,6 +351,7 @@ char *argv[]; F_compound objects; int status; + setlocale(LC_CTYPE, ""); #ifdef HAVE_SETMODE setmode(1,O_BINARY); /* stdout is binary */ #endif --- fig2dev/fig2dev.h +++ fig2dev/fig2dev.h 2006-07-31 18:26:56.000000000 +0200 @@ -22,7 +22,7 @@ #include #include #include -#include +#include #include #include #include @@ -57,7 +57,7 @@ typedef char Boolean; #ifndef X_NOT_STDC_ENV # include #else -# ifdef SYSV +# if defined(SYSV) || defined(__GLIBC__) # include # else # include --- fig2dev/fig2ps2tex.script +++ fig2dev/fig2ps2tex.script 2006-07-31 18:26:56.000000000 +0200 @@ -3,6 +3,7 @@ # Fig2ps2tex - generate a TeX file for including a PostScript file # involves calculating the bounding box from fig2ps output # +set echo_style=bsd set bbox = `grep "^%%BoundingBox:" $1` set xsp = `echo "3k $bbox[4] $bbox[2] - 72 / p" | dc` --- fig2dev/getopt.c +++ fig2dev/getopt.c 2006-07-31 18:26:56.000000000 +0200 @@ -35,6 +35,7 @@ static char sccsfid[] = "@(#) getopt.c 5 #define EMSG "" #define ENDARGS "--" +#ifndef __GLIBC__ /* this is included because index is not on some UNIX systems */ static char * index (s, c) @@ -46,7 +47,9 @@ index (s, c) else s++; return (NULL); } +#endif +#ifndef __GLIBC__ /* * get option letter from argument vector */ @@ -94,4 +97,10 @@ fig_getopt(nargc,nargv,ostr) } return(optopt); /* dump back option letter */ } - +#else +#include +fig_getopt(int nargc, char * const nargv[], const char *ostr) +{ + return getopt(nargc, nargv, ostr); +} +#endif --- fig2dev/dev/genps.c +++ fig2dev/dev/genps.c 2006-07-31 18:26:56.000000000 +0200 @@ -37,6 +37,8 @@ */ #include +#include +#include #include "fig2dev.h" #include "figure.h" #include "object.h" @@ -803,23 +805,45 @@ F_compound *objects; fprintf(tfp, "%s\n", SPLINE_PS); #ifdef I18N if (support_i18n && iso_text_exist(objects)) { - char *libdir, *locale; + char *libdir, *locale, *codeset; char localefile[512], str[512]; FILE *fp; + size_t llen; libdir = getenv("FIG2DEV_LIBDIR"); if (libdir == NULL) libdir = FIG2DEV_LIBDIR; - locale = getenv("LANG"); + locale = setlocale(LC_CTYPE, NULL); + llen = strcspn(locale, ".@"); + codeset = nl_langinfo(CODESET); if (locale == NULL) { fprintf(stderr, "fig2dev: LANG not defined; assuming C locale\n"); locale = "C"; } - sprintf(localefile, "%s/%s.ps", libdir, locale); + + snprintf(localefile, sizeof(localefile)-1, "%s/%s.ps", libdir, locale); /* get filename like ``/usr/local/lib/fig2dev/japanese.ps'' */ fp = fopen(localefile, "rb"); - if (fp == NULL) { - fprintf(stderr, "fig2dev: can't open file: %s\n", localefile); - } else { + if (fp == NULL) + fprintf(stderr, "fig2dev: A can't open file: %s\n", localefile); + + if (fp == NULL && strlen(locale) != llen) { + locale[llen] = '\0'; + /* get filename like ``/usr/local/lib/fig2dev/de_DE.ps'' */ + snprintf(localefile, sizeof(localefile)-1, "%s/%s.ps", libdir, locale); + fp = fopen(localefile, "rb"); + if (fp == NULL) + fprintf(stderr, "fig2dev: B can't open file: %s\n", localefile); + } + + if (fp == NULL && codeset) { + /* get filename like ``/usr/local/lib/fig2dev/ISO-8859-9.ps'' */ + snprintf(localefile, sizeof(localefile)-1, "%s/%s.ps", libdir, codeset); + fp = fopen(localefile, "rb"); + if (fp == NULL) + fprintf(stderr, "fig2dev: C can't open file: %s\n", localefile); + } + + if (fp) { while (fgets(str, sizeof(str), fp)) { if (strstr(str, "CompositeRoman")) enable_composite_font = True; fputs(str, tfp); --- fig2dev/dev/genpstex.c +++ fig2dev/dev/genpstex.c 2006-07-31 18:26:56.000000000 +0200 @@ -62,10 +62,13 @@ extern void genps_spline (), genlatex_option (), genlatex_text (), - genps_text (); + genps_text (), + genpdf_option(), + genpdf_start(); extern int genlatex_end (), - genps_end (); + genps_end (), + genpdf_end(); static char pstex_file[1000] = ""; --- fig2dev/dev/gensvg.c +++ fig2dev/dev/gensvg.c 2006-07-31 18:26:56.000000000 +0200 @@ -692,18 +692,18 @@ gensvg_text (t) if (t->angle != 0) { fprintf (tfp, "\n", (int) (t->base_x * mag), (int) (t->base_y * mag), degrees (t->angle)); - fprintf (tfp, "\n", - rgbColorVal (t->color), family[(int) ceil ((t->font + 1) / 4)], + fprintf (tfp, "color), family[(int) ceil ((t->font + 1) / 4)]); + fprintf (tfp, "font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n", (t->font % 2 == 0 ? "normal" : "italic"), (t->font % 4 < 2 ? "normal" : "bold"), (int) (ceil (t->size * 12 * mag)), anchor[t->type]); } else - fprintf (tfp, "\n", + fprintf (tfp, "base_x * mag), (int) (t->base_y * mag), rgbColorVal (t->color), - family[(int) ceil ((t->font + 1) / 4)], + family[(int) ceil ((t->font + 1) / 4)]); + fprintf (tfp, "font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n", (t->font % 2 == 0 ? "normal" : "italic"), (t->font % 4 < 2 ? "normal" : "bold"), (int) (ceil (t->size * 12 * mag)), anchor[t->type]); --- transfig/Imakefile +++ transfig/Imakefile 2006-07-31 18:26:56.000000000 +0200 @@ -18,7 +18,7 @@ XCOMM Uncomment the USELATEX2E flag in t XCOMM \\usepackage{} command for LaTeX2e. XCOMM The default is to use \\documentstyle{} for LaTeX209. -XCOMM USELATEX2E = -DLATEX2E +USELATEX2E = -DLATEX2E XCOMM ******* DON'T CHANGE ANYTHIN BELOW THIS POINT ******* --- transfig/sys.c +++ transfig/sys.c 2006-07-31 18:26:56.000000000 +0200 @@ -15,6 +15,8 @@ */ #include +#include +#include #include "transfig.h" #define MAXSYS 10000 --- transfig/transfig.c +++ transfig/transfig.c 2006-07-31 18:26:56.000000000 +0200 @@ -25,6 +25,8 @@ */ #include +#include +#include #include "patchlevel.h" #include "transfig.h"