diff -r -u transfig.3.2.4/fig2dev/Imakefile transfig.3.2.4-be031024/fig2dev/Imakefile --- transfig.3.2.4/fig2dev/Imakefile 2002-12-19 18:33:44.000000000 +0100 +++ transfig.3.2.4-be031024/fig2dev/Imakefile 2003-10-23 17:14:53.000000000 +0200 @@ -20,7 +20,8 @@ XCOMM You should point XFIGLIBDIR to the same directory you did when you compiled XCOMM and installed xfig. -XFIGLIBDIR = /usr/local/lib/X11/xfig +XCOMM XFIGLIBDIR = /usr/local/lib/X11/xfig +XFIGLIBDIR = $(LIBDIR)/xfig XCOMM ****** XCOMM If your system has the strerror() function (doesn't have sys_errlist) then diff -r -u transfig.3.2.4/fig2dev/dev/genpstex.c transfig.3.2.4-be031024/fig2dev/dev/genpstex.c --- transfig.3.2.4/fig2dev/dev/genpstex.c 2002-12-18 23:37:25.000000000 +0100 +++ transfig.3.2.4-be031024/fig2dev/dev/genpstex.c 2003-10-24 11:45:52.000000000 +0200 @@ -35,6 +35,13 @@ * Jose Alberto. */ +/* added hyperlink support for BOXes in pstex_t */ +/* similar to genmap.c and partly based on genlatex.c */ +/* actually, the min/max bounding box of a POLYLINE is used ... */ +/* use e.g. "\href{audio/i15.wav}" as comment of a POLYLINE: Box */ +/* 08-Sep-2000 Heiko Purnhagen <purnhage@tnt.uni-hannover.de> */ +/* 24-Oct-2003 Bernd Edler <edler@tnt.uni-hannover.de> (version 3.2.4) */ + #include "fig2dev.h" #include "genps.h" #include "genpdf.h" @@ -69,6 +76,11 @@ static char pstex_file[1000] = ""; +static char buf[2000]; + +#define TRANS(x,y) (*translate_coordinates)(&x,&y) +extern int (*translate_coordinates)(); + void genpstex_t_option(opt, optarg) char opt, *optarg; { @@ -125,13 +137,61 @@ if (opt != 'p') genlatex_option(opt, optarg); } +static char *is_href(comment) + F_comment *comment; +{ + char *cp; + int i; + + buf[0] = '\0'; + if (comment != NULL) { + cp = comment->comment; + while (isspace(*cp)) + cp++; /* ignore leading spaces */ + i = 0; + while (isgraph(*cp)) + buf[i++] = *(cp++); /* href */ + buf[i] = '\0'; + return buf; + } + return NULL; +} + +void genpstex_t_line(l) + F_line *l; +{ + char *href; + int x, y, xmin, xmax, ymin, ymax; + F_point *p; + + href = is_href(l->comments); + if (href != NULL) { + x = l->points->x; + y = l->points->y; + TRANS(x,y); + xmin = xmax = x; + ymin = ymax = y; + for (p = l->points->next; p != NULL; p = p->next) { + x = p->x; + y = p->y; + TRANS(x,y); + if (x < xmin) xmin = x; + if (xmax < x) xmax = x; + if (y < ymin) ymin = y; + if (ymax < y) ymax = y; + } + fprintf(tfp,"\\put(%d,%d){%s{\\makebox(%d,%d){}}}\n", + xmin,ymin,href,xmax-xmin,ymax-ymin); + } +} + struct driver dev_pstex_t = { genpstex_t_option, genpstex_t_start, gendev_null, gendev_null, gendev_null, - gendev_null, + genpstex_t_line, gendev_null, genpstex_t_text, genlatex_end, @@ -144,7 +204,7 @@ gendev_null, gendev_null, gendev_null, - gendev_null, + genpstex_t_line, gendev_null, genpstex_t_text, genlatex_end, diff -r -u transfig.3.2.4/fig2dev/dev/gensvg.c transfig.3.2.4-be031024/fig2dev/dev/gensvg.c --- transfig.3.2.4/fig2dev/dev/gensvg.c 2002-12-18 23:38:18.000000000 +0100 +++ transfig.3.2.4-be031024/fig2dev/dev/gensvg.c 2003-10-23 17:38:36.000000000 +0200 @@ -692,16 +692,14 @@ if (t->angle != 0) { fprintf (tfp, "<g transform=\"translate(%d,%d) rotate(%d)\" >\n", (int) (t->base_x * mag), (int) (t->base_y * mag), degrees (t->angle)); - fprintf (tfp, "<text x=\"0\" y=\"0\" fill=\"#%6.6x\" font-family=\"%s\" - font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n", + fprintf (tfp, "<text x=\"0\" y=\"0\" fill=\"#%6.6x\" font-family=\"%s\" font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n", rgbColorVal (t->color), family[(int) ceil ((t->font + 1) / 4)], (t->font % 2 == 0 ? "normal" : "italic"), (t->font % 4 < 2 ? "normal" : "bold"), (int) (ceil (t->size * 12 * mag)), anchor[t->type]); } else - fprintf (tfp, "<text x=\"%d\" y=\"%d\" fill=\"#%6.6x\" font-family=\"%s\" - font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n", + fprintf (tfp, "<text x=\"%d\" y=\"%d\" fill=\"#%6.6x\" font-family=\"%s\" font-style=\"%s\" font-weight=\"%s\" font-size=\"%d\" text-anchor=\"%s\" >\n", (int) (t->base_x * mag), (int) (t->base_y * mag), rgbColorVal (t->color), family[(int) ceil ((t->font + 1) / 4)], (t->font % 2 == 0 ? "normal" : "italic"), diff -r -u transfig.3.2.4/fig2dev/fig2dev.h transfig.3.2.4-be031024/fig2dev/fig2dev.h --- transfig.3.2.4/fig2dev/fig2dev.h 2002-12-18 23:45:28.000000000 +0100 +++ transfig.3.2.4-be031024/fig2dev/fig2dev.h 2003-10-23 17:17:29.000000000 +0200 @@ -22,7 +22,7 @@ #include <sys/file.h> #include <signal.h> #include <string.h> -#include <varargs.h> +#include <stdarg.h> #include <pwd.h> #include <errno.h> #include <time.h>