SHA256
1
0
forked from pool/xfig
OBS User unknown 2007-01-15 23:42:25 +00:00 committed by Git OBS Bridge
commit 0fb71d9e50
20 changed files with 2286 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

78
browser Normal file
View File

@ -0,0 +1,78 @@
#!/bin/bash
#
# browser script
#
# Copyright (c) 2004 SuSE Linux AG, Nuernberg, Germany.
# Copyright (c) 2004 Werner Fink
#
# Author: Werner Fink
prog=""
for p in \
Mozilla \
mozilla \
Netscape \
netscape \
Mosaic \
mosaic \
opera \
konqueror \
amaya
do
prog=$(type -p $p) && break
done
test -n "$prog" || { echo "${0##*/}: no web browser found" 1>&2; exit 1; }
cmd="openBrowser"
open="openURL"
for opt in $@ ; do
case "$opt" in
http://*|https://*|www.*)
url=$opt
;;
file:/*|*/*.htm|*/*.html)
url=$opt
open="openFile"
;;
ftp://*|*/*.htmls)
url=$opt
;;
*.htm|*.html|*.htmls)
url=$PWD/$opt
;;
-discussions|-news)
cmd=openNewsgroups
;;
-messenger|-mail)
cmd=openInbox
;;
-composer|-edit)
cmd=composeMessage
;;
-component-bar)
cmd=toggleTaskbar
;;
-remote|-help)
cmd=""; url="";
break
;;
esac
done
case "$prog" in
*/[nN]etscape|*/[Mm]ozilla)
ret=0
if test -n "$url" ; then
$prog -noraise -remote "xfeDoCommand(openBrowser)" &> /dev/null && \
$prog -remote "$open($url)"
ret=$?
elif test -n "$cmd" ; then
$p -noraise -remote "xfeDoCommand($cmd)" &> /dev/null
ret=$?
fi
test $ret -eq 0 && exit 0
esac
# You are at your own
exec -a $prog $prog ${1+"$@"}

46
font-test.fig Normal file
View File

@ -0,0 +1,46 @@
#FIG 3.2
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 12330 31770 162 162 12330 31770 12465 31860
1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 495 -540 142 142 495 -540 630 -495
4 0 0 50 0 0 50 0.0000 4 150 1230 450 1000 Times-Roman\001
4 0 0 50 0 1 50 0.0000 4 150 1065 450 2000 Times-Italic\001
4 0 0 50 0 2 50 0.0000 4 150 1095 450 3000 Times-Bold\001
4 0 0 50 0 4 50 0.0000 4 135 1350 450 5000 AvantGarde-Book\001
4 0 0 50 0 5 50 0.0000 4 165 1980 450 6000 AvantGarde-BookOblique\001
4 0 0 50 0 6 50 0.0000 4 135 1350 450 7000 AvantGarde-Demi\001
4 0 0 50 0 7 50 0.0000 4 165 1980 450 8000 AvantGarde-DemiOblique\001
4 0 0 50 0 8 50 0.0000 4 165 1170 450 9000 Bookman-Light\001
4 0 0 50 0 9 50 0.0000 4 165 1710 450 10000 Bookman-LightItalic\001
4 0 0 50 0 10 50 0.0000 4 135 1080 450 11000 Bookman-Demi\001
4 0 0 50 0 11 50 0.0000 4 135 1620 450 12000 Bookman-DemiItalic\001
4 0 0 50 0 12 50 0.0000 4 150 945 450 13000 Courier\001
4 0 0 50 0 13 50 0.0000 4 195 2025 450 14000 Courier-Oblique\001
4 0 0 50 0 14 50 0.0000 4 150 1620 450 15000 Courier-Bold\001
4 0 0 50 0 15 50 0.0000 4 195 2565 450 16000 Courier-BoldOblique\001
4 0 0 50 0 16 50 0.0000 4 165 900 450 17000 Helvetica\001
4 0 0 50 0 17 50 0.0000 4 210 1740 450 18000 Helvetica-Oblique\001
4 0 0 50 0 18 50 0.0000 4 165 1500 450 19000 Helvetica-Bold\001
4 0 0 50 0 19 50 0.0000 4 210 2310 450 20000 Helvetica-BoldOblique\001
4 0 0 50 0 20 50 0.0000 4 135 1440 450 21000 Helvetica-Narrow\001
4 0 0 50 0 21 50 0.0000 4 165 2160 450 22000 Helvetica-Narrow-Oblique\001
4 0 0 50 0 22 50 0.0000 4 135 1890 450 23000 Helvetica-Narrow-Bold\001
4 0 0 50 0 23 50 0.0000 4 165 2520 450 24000 Helvetica-Narrow-BoldOblique\001
4 0 0 50 0 24 50 0.0000 4 210 2805 450 25000 NewCenturySchlbk-Roman\001
4 0 0 50 0 25 50 0.0000 4 210 2475 450 26000 NewCenturySchlbk-Italic\001
4 0 0 50 0 26 50 0.0000 4 210 2760 450 27000 NewCenturySchlbk-Bold\001
4 0 0 50 0 27 50 0.0000 4 210 3315 450 28000 NewCenturySchlbk-BoldItalic\001
4 0 0 50 0 28 50 0.0000 4 135 1260 450 29000 Palatino-Roman\001
4 0 0 50 0 29 50 0.0000 4 135 1350 450 30000 Palatino-Italic\001
4 0 0 50 0 30 50 0.0000 4 135 1170 450 31000 Palatino-Bold\001
4 0 0 50 0 31 50 0.0000 4 135 1710 450 32000 Palatino-BoldItalic\001
4 0 0 50 0 32 50 0.0000 4 360 1275 450 33000 Symbol\001
4 0 0 50 0 33 50 0.0000 4 165 2250 450 34000 ZapfChancery-MediumItalic\001
4 0 0 50 0 34 50 0.0000 4 165 1080 450 35000 ZapfDingbats\001
4 0 0 50 0 3 50 0.0000 4 150 1515 450 4000 Times-BoldItalic\001

0
ready Normal file
View File

331
xfig-3.2.4-mkstemp.dif Normal file
View File

@ -0,0 +1,331 @@
--- xfig.3.2.4/f_readeps.c
+++ xfig.3.2.4/f_readeps.c 2003-05-06 12:07:54.000000000 +0200
@@ -258,7 +258,7 @@
char buf[300];
FILE *tmpfp, *pixfile, *gsfile;
char *psnam, *driver;
- int status, wid, ht, nbitmap;
+ int status, wid, ht, nbitmap, fd;
char tmpfile[PATH_MAX],
pixnam[PATH_MAX],
errnam[PATH_MAX],
@@ -274,8 +274,12 @@
/* re-open the pipe */
close_picfile(file, filetype);
file = open_picfile(file, &filetype, PIPEOK, pixnam);
- sprintf(tmpfile, "%s/%s%06d", TMPDIR, "xfig-eps", getpid());
- if ((tmpfp = fopen(tmpfile, "wb")) == NULL) {
+ snprintf(tmpfile, sizeof(tmpfile), "%s/xfig-eps.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(tmpfile)) == -1 || (tmpfp = fdopen(fd, "wb")) == NULL) {
+ if (fd != -1) {
+ unlink(tmpfile);
+ close(fd);
+ }
file_msg("Couldn't open tmp file %s, %s", tmpfile, strerror(errno));
return False;
}
@@ -284,9 +288,21 @@
fclose(tmpfp);
}
/* make name /TMPDIR/xfig-pic.pix */
- sprintf(pixnam, "%s/%s%06d.pix", TMPDIR, "xfig-pic", getpid());
+ snprintf(pixnam, sizeof(pixnam), "%s/xfig-pic.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(pixnam)) == -1) {
+ file_msg("Couldn't open tmp file %s, %s", pixnam, strerror(errno));
+ return False;
+ }
+ close(fd);
+
/* and file name for any error messages from gs */
- sprintf(errnam, "%s/%s%06d.err", TMPDIR, "xfig-pic", getpid());
+ snprintf(errnam, sizeof(errnam), "%s/xfig-picerr.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(errnam)) == -1) {
+ file_msg("Couldn't open tmp file %s, %s", errnam, strerror(errno));
+ return False;
+ }
+ close(fd);
+
/* generate gs command line */
/* for monochrome, use pbm */
if (tool_cells <= 2 || appres.monochrome) {
--- xfig.3.2.4/f_readgif.c
+++ xfig.3.2.4/f_readgif.c 2003-05-06 11:56:53.000000000 +0200
@@ -75,7 +75,7 @@
char buf[BUFLEN],pcxname[PATH_MAX];
FILE *giftopcx;
struct Cmap localColorMap[MAX_COLORMAP_SIZE];
- int i, stat, size;
+ int i, stat, size, fd;
int useGlobalColormap;
unsigned int bitPixel, red, green, blue;
unsigned char c;
@@ -172,7 +172,13 @@
/* now call giftopnm and ppmtopcx */
/* make name for temp output file */
- sprintf(pcxname, "%s/%s%06d.pix", TMPDIR, "xfig-pcx", getpid());
+ snprintf(pcxname, sizeof(pcxname), "%s/xfig-pcx.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(pcxname)) == -1) {
+ file_msg("Cannot create temporary file\n");
+ return FileInvalid;
+ }
+ close(fd);
+
/* make command to convert gif to pcx into temp file */
sprintf(buf, "giftopnm | ppmtopcx > %s 2> /dev/null", pcxname);
if ((giftopcx = popen(buf,"w" )) == 0) {
--- xfig.3.2.4/f_readppm.c
+++ xfig.3.2.4/f_readppm.c 2003-05-06 11:56:53.000000000 +0200
@@ -33,10 +33,16 @@
{
char buf[BUFLEN],pcxname[PATH_MAX];
FILE *giftopcx;
- int stat, size;
+ int stat, size, fd;
/* make name for temp output file */
- sprintf(pcxname, "%s/%s%06d.pix", TMPDIR, "xfig-pcx", getpid());
+ snprintf(pcxname, sizeof(pcxname), "%s/xfig-pcx.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(pcxname)) == -1) {
+ file_msg("Cannot open temp file %s: %s\n", pcxname, strerror(errno));
+ return FileInvalid;
+ }
+ close(fd);
+
/* make command to convert gif to pcx into temp file */
sprintf(buf, "ppmtopcx > %s 2> /dev/null", pcxname);
if ((giftopcx = popen(buf,"w" )) == 0) {
--- xfig.3.2.4/f_readtif.c
+++ xfig.3.2.4/f_readtif.c 2003-05-06 11:56:53.000000000 +0200
@@ -32,11 +32,16 @@
{
char buf[2*PATH_MAX+40],pcxname[PATH_MAX];
FILE *tiftopcx;
- int stat;
+ int stat, fd;
/* make name for temp output file */
- sprintf(pcxname, "%s/%s%06d.pix", TMPDIR, "xfig-pcx", getpid());
-
+ snprintf(pcxname, sizeof(pcxname), "%s/xfig-pcx.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(pcxname)) == -1) {
+ file_msg("Cannot open temp file %s: %s\n", pcxname, strerror(errno));
+ return FileInvalid;
+ }
+ close(fd);
+
/* make command to convert tif to pnm then to pcx into temp file */
/* for some reason, tifftopnm requires a file and can't work in a pipe */
sprintf(buf, "tifftopnm %s 2> /dev/null | ppmtopcx > %s 2> /dev/null",
--- xfig.3.2.4/f_util.c
+++ xfig.3.2.4/f_util.c 2003-05-06 12:13:22.000000000 +0200
@@ -902,14 +902,20 @@
char *name;
{
char line[RC_BUFSIZ+1], *tok;
+ int fd;
/* make a temp filename in the user's home directory so we
can just rename it to .xfigrc after creating it */
- sprintf(tmpname, "%s/%s%06d", userhome, "xfig-xfigrc", getpid());
- tmpf = fopen(tmpname,"wb");
- if (tmpf == 0) {
- file_msg("Can't make temporary file for .xfigrc - error: %s",strerror(errno));
- return -1;
+ snprintf(tmpname, sizeof(tmpname), "%s/xfig-xfigrc.XXXXXX", userhome);
+
+ if ((fd = mkstemp(tmpname)) == -1 || (tmpf = fdopen(fd, "wb")) == NULL) {
+ file_msg("Can't make temporary file for .xfigrc - error: %s",
+ strerror(errno));
+ if (fd != -1) {
+ unlink(tmpname);
+ close(fd);
+ }
+ return -1;
}
/* read the .xfigrc file and write all to temp file except file names */
xfigrc = fopen(xfigrc_name,"r");
--- xfig.3.2.4/main.c
+++ xfig.3.2.4/main.c 2003-05-06 11:56:53.000000000 +0200
@@ -621,8 +621,10 @@
update_figs = False;
/* get the TMPDIR environment variable for temporary files */
- if ((TMPDIR = getenv("XFIGTMPDIR"))==NULL)
- TMPDIR = "/tmp";
+ if ((TMPDIR = getenv("XFIGTMPDIR"))==NULL) {
+ if ((TMPDIR = getenv("TMPDIR")) == NULL)
+ TMPDIR = "/tmp";
+ }
/* first check args to see if user wants to scale the figure as it is
read in and make sure it is a resonable (positive) number */
@@ -1631,7 +1633,14 @@
if (userhome != NULL && *strcpy(cut_buf_name, userhome) != '\0') {
strcat(cut_buf_name, "/.xfig");
} else {
- sprintf(cut_buf_name, "%s/xfig%06d", TMPDIR, getpid());
+ int fd;
+ sprintf(cut_buf_name, "%s/xfig.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(cut_buf_name)) == -1) {
+ fprintf(stderr, "Can't create temporary file for cut_buff: %s\n",
+ strerror(errno));
+ exit(0);
+ }
+ close(fd);
}
}
--- xfig.3.2.4/mode.c
+++ xfig.3.2.4/mode.c 2003-05-06 11:56:53.000000000 +0200
@@ -93,7 +93,7 @@
int cur_exp_lang; /* gets initialized in main.c */
Boolean batch_exists = False;
-char batch_file[32];
+char batch_file[PATH_MAX];
/*******************************************************************/
/* If you change the order of the lang_items[] you must change the */
--- xfig.3.2.4/u_print.c
+++ xfig.3.2.4/u_print.c 2003-05-06 12:18:47.000000000 +0200
@@ -85,9 +85,16 @@
char syspr[2*PATH_MAX+200];
char tmpfile[PATH_MAX];
char *name;
+ int fd;
- sprintf(tmpfile, "%s/%s%06d", TMPDIR, "xfig-print", getpid());
+ snprintf(tmpfile, sizeof(tmpfile), "%s/xfig-print.XXXXXX", TMPDIR);
warnexist = False;
+ if ((fd = mkstemp(tmpfile)) == -1) {
+ file_msg("Can't open temp file %s: %s\n", tmpfile, strerror(errno));
+ return;
+ }
+ close(fd);
+
init_write_tmpfile();
if (write_file(tmpfile, False)) {
end_write_tmpfile();
@@ -166,14 +173,21 @@
char tmp_name[PATH_MAX];
char tmp_fig_file[PATH_MAX];
char *outfile, *name, *real_lang;
+ int fd;
/* if file exists, ask if ok */
if (!ok_to_write(file, "EXPORT"))
return (1);
- sprintf(tmp_fig_file, "%s/%s%06d", TMPDIR, "xfig-fig", getpid());
- /* write the fig objects to a temporary file */
+ snprintf(tmp_fig_file, sizeof(tmp_fig_file), "%s/xfig-fig.XXXXXX", TMPDIR);
warnexist = False;
+ if ((fd = mkstemp(tmp_fig_file)) == -1) {
+ file_msg("Can't open temp file %s: %s\n", tmp_fig_file,
+ strerror(errno));
+ return 1;
+ }
+ close(fd);
+
init_write_tmpfile();
if (write_file(tmp_fig_file, False)) {
end_write_tmpfile();
@@ -491,10 +505,16 @@
char errfname[PATH_MAX];
FILE *errfile;
char str[400];
- int status;
+ int status, fd;
/* make temp filename for any errors */
- sprintf(errfname, "%s/xfig-export%06d.err", TMPDIR, getpid());
+ snprintf(errfname, sizeof(errfname), "%s/xfig-export.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(errfname)) == -1) {
+ file_msg("Can't open temp file %s: %s\n", errfname, strerror(errno));
+ return 1;
+ }
+ close(fd);
+
/* direct any output from fig2dev to this file */
strcat(command, " 2> ");
strcat(command, errfname);
--- xfig.3.2.4/w_print.c
+++ xfig.3.2.4/w_print.c 2003-05-06 12:20:46.000000000 +0200
@@ -289,9 +289,10 @@
Widget w;
{
FILE *infp,*outfp;
- char tmp_exp_file[32];
+ char tmp_exp_file[PATH_MAX];
char str[255];
char backgrnd[10], grid[80];
+ int fd;
if (writing_batch || emptyfigure_msg(print_msg))
return;
@@ -300,11 +301,20 @@
/* this could happen if the user presses the button too fast */
writing_batch = True;
- /* make a temporary name to write the batch stuff to */
- sprintf(batch_file, "%s/%s%06d", TMPDIR, "xfig-batch", getpid());
/* make a temporary name to write this figure to */
- sprintf(tmp_exp_file, "%s/%s%06d", TMPDIR, "xfig-exp", getpid());
- batch_exists = True;
+ snprintf(tmp_exp_file, sizeof(tmp_exp_file), "%s/xfig-exp.XXXXXX",
+ TMPDIR);
+
+ if (batch_exists != True) {
+ /* make a temporary name to write the batch stuff to */
+ sprintf(batch_file, "%s/xfig-batch.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(batch_file)) == -1) {
+ file_msg("Error creating temporary file");
+ return;
+ }
+ close(fd);
+ batch_exists = True;
+ }
if (!print_popup)
create_print_panel(w);
@@ -317,6 +327,12 @@
/* make a #rrggbb string from the background color */
make_rgb_string(export_background_color, backgrnd);
+ if ((fd = mkstemp(tmp_exp_file)) == -1) {
+ file_msg("Error creating temporary file");
+ return;
+ }
+ close(fd);
+
/* get grid params and assemble into fig2dev parm */
get_grid_spec(grid, print_grid_minor_text);
--- xfig.3.2.4/w_srchrepl.c
+++ xfig.3.2.4/w_srchrepl.c 2003-05-06 11:56:53.000000000 +0200
@@ -795,7 +795,7 @@
char *cmd;
char str[300];
FILE *fp;
- int len, i;
+ int len, i, fd;
Boolean done = FALSE;
static int lines = 0;
@@ -811,9 +811,12 @@
}
lines = 0;
- sprintf(filename, "%s/xfig-spell.%d", TMPDIR, (int)getpid());
- fp = fopen(filename, "w");
- if (fp == NULL) {
+ snprintf(filename, sizeof(filename), "%s/xfig-spell.XXXXXX", TMPDIR);
+ if ((fd = mkstemp(filename)) == -1 || (fp = fdopen(fd, "w")) == NULL) {
+ if (fd != -1) {
+ unlink(filename);
+ close(fd);
+ }
file_msg("Can't open temporary file: %s: %s\n", filename, strerror(errno));
} else {
/* locate all text objects and write them to file fp */

View File

@ -0,0 +1,49 @@
diff -ru xfig.3.2.3d.orig/main.c xfig.3.2.3d/main.c
--- xfig.3.2.3d.orig/main.c 2001-01-25 22:49:19.000000000 +0100
+++ xfig.3.2.3d/main.c 2003-05-09 11:58:41.000000000 +0200
@@ -259,18 +259,36 @@
XtOffset(appresPtr, always_use_fontset), XtRBoolean, (caddr_t) & false},
{"fixedFontSet", "FontSet", XtRFontSet, sizeof(XFontSet),
XtOffset(appresPtr, fixed_fontset), XtRString,
- (caddr_t) "-*-times-medium-r-normal--16-*-*-*-*-*-*-*,"
- "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*" },
+ (caddr_t) "-URW-Nimbus Roman No9 L-medium-r-normal--34-*-*-*-*-*-*-*,"
+ "-kochi-mincho-medium-r-normal--34-*-*-*-*-*-jisx0208.1983-0,"
+ "-baekmukttf-batang-medium-r-normal--34-*-*-*-*-*-ksc5601.1987-0,"
+ "-*-times-medium-r-normal--34-*-*-*-*-*-*-*,"
+ "-*-*-medium-r-normal--34-*-*-*-*-*-*-*,*--34-*"
+ "-*-times-medium-r-normal--16-*-*-*-*-*-*-*,"
+ "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*"
+ },
{"normalFontSet", "NormalFontSet", XtRFontSet, sizeof(XFontSet),
XtOffset(appresPtr, normal_fontset), XtRString,
- (caddr_t) "-*-times-medium-r-normal--16-*-*-*-*-*-*-*,"
- "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,"
- "-*-*-*-r-*--16-*-*-*-*-*-*-*" },
+ (caddr_t) "-URW-Nimbus Roman No9 L-medium-r-normal--34-*-*-*-*-*-*-*,"
+ "-kochi-mincho-medium-r-normal--34-*-*-*-*-*-jisx0208.1983-0,"
+ "-baekmukttf-batang-medium-r-normal--34-*-*-*-*-*-ksc5601.1987-0,"
+ "-*-times-medium-r-normal--34-*-*-*-*-*-*-*,"
+ "-*-*-medium-r-normal--34-*-*-*-*-*-*-*,"
+ "-*-*-*-r-*--34-*-*-*-*-*-*-*"
+ "-*-times-medium-r-normal--16-*-*-*-*-*-*-*,"
+ "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*"
+ },
{"boldFontSet", "BoldFontSet", XtRFontSet, sizeof(XFontSet),
XtOffset(appresPtr, bold_fontset), XtRString,
- (caddr_t) "-*-times-bold-r-normal--16-*-*-*-*-*-*-*,"
- "-*-*-bold-r-normal--16-*-*-*-*-*-*-*,"
- "-*-*-*-r-*--16-*-*-*-*-*-*-*" },
+ (caddr_t) "-URW-Nimbus Roman No9 L-bold-r-normal--34-*-*-*-*-*-*-*,"
+ "-kochi-gothic-medium-r-normal--34-*-*-*-*-*-jisx0208.1983-0,"
+ "-baekmukttf-dotum-medium-r-normal--34-*-*-*-*-*-ksc5601.1987-0,"
+ "-*-times-bold-r-normal--34-*-*-*-*-*-*-*,"
+ "-*-*-bold-r-normal--34-*-*-*-*-*-*-*,"
+ "-*-*-*-r-*--34-*-*-*-*-*-*-*"
+ "-*-times-medium-r-normal--16-*-*-*-*-*-*-*,"
+ "-*-*-medium-r-normal--16-*-*-*-*-*-*-*,*--16-*"
+ },
{"fontSetSize", "FontSetSize", XtRInt, sizeof(int),
XtOffset(appresPtr, fontset_size), XtRImmediate, (caddr_t)0 },
{"inputStyle", "InputStyle", XtRString, sizeof(char *),

10
xfig.3.2.3d-xcolor.dif Normal file
View File

@ -0,0 +1,10 @@
--- w_color.c
+++ w_color.c
@@ -1288,6 +1288,7 @@
create_cell(indx, color)
int indx;
+ XColor color;
{
char labl[5];

33
xfig.3.2.3d-xim.dif Normal file
View File

@ -0,0 +1,33 @@
--- xfig.3.2.3d/d_text.c
+++ xfig.3.2.3d/d_text.c
@@ -1485,6 +1485,7 @@
int i;
XVaNestedList preedit_att, status_att;
XPoint spot;
+ char *modifier_list;
preferred_style = style_notuseful;
if (strncasecmp(appres.xim_input_style, "OverTheSpot", 3) == 0)
@@ -1501,6 +1502,10 @@
if (preferred_style == style_notuseful) return;
if (appres.DEBUG) fprintf(stderr, "initialize_input_method()...\n");
+
+ if((modifier_list = XSetLocaleModifiers("")) == NULL) {
+ /* printf("Warning: XSetLocaleModifiers() failed.\n"); */
+ }
xim_im = XOpenIM(XtDisplay(w), NULL, NULL, NULL);
if (xim_im == NULL) {
@@ -1517,7 +1522,10 @@
if (xim_style == 0) xim_style = style_root;
}
}
- if (xim_style != preferred_style) {
+ if (xim_style != preferred_style
+ && *modifier_list != '\0'
+ && ! strstr(modifier_list,"@im=local")
+ && ! strstr(modifier_list,"@im=none")) {
fprintf(stderr, "xfig: this input-method doesn't support %s input style\n",
appres.xim_input_style);
if (xim_style == 0) {

11
xfig.3.2.4-gcc4.dif Normal file
View File

@ -0,0 +1,11 @@
--- w_color.c
+++ w_color.c 2005/08/31 10:42:32
@@ -1057,7 +1057,7 @@
{
F_compound *c;
int i, count;
- char buf[10];
+ char buf[11];
/* keep array of counts of each color */
for (i=0; i<num_usr_cols; i++)

117
xfig.3.2.4-locale.dif Normal file
View File

@ -0,0 +1,117 @@
--- main.c
+++ main.c 2006-07-31 17:56:25.000000000 +0200
@@ -62,6 +62,7 @@
#ifdef I18N
#include <X11/keysym.h>
#include <locale.h>
+#include <langinfo.h>
#endif /* I18N */
/* EXPORTS */
@@ -709,11 +710,6 @@ main(argc, argv)
}
}
-#ifdef I18N
- setlocale(LC_ALL, "");
- XtSetLanguageProc(NULL, NULL, NULL);
-#endif /* I18N */
-
/*
* save the command line arguments
*/
@@ -807,6 +803,10 @@ main(argc, argv)
}
#ifdef I18N
+ if (NULL == strcasestr(nl_langinfo(CODESET),"ANSI") &&
+ NULL == strcasestr(nl_langinfo(CODESET),"ISO-8859-1"))
+ appres.international = True;
+
/************************************************************/
/* if the international option has been set, set the locale */
/************************************************************/
@@ -1523,6 +1523,11 @@ setup_visual(argc_p, argv, args)
*/
tool = XtAppInitialize (&tool_app, "Fig", options, XtNumber (options), argc_p, argv,
(String *) NULL, args, 0);
+#ifdef I18N
+ setlocale(LC_ALL, "");
+ setlocale(LC_NUMERIC, "C");
+ XtSetLanguageProc(tool_app, NULL, NULL);
+#endif /* I18N */
/* save important info */
tool_d = XtDisplay(tool);
tool_s = XtScreen(tool);
--- u_print.c
+++ u_print.c 2006-11-16 12:45:46.000000000 +0000
@@ -15,6 +15,7 @@
*
*/
+#include <locale.h>
#include "fig.h"
#include "resources.h"
#include "mode.h"
@@ -75,6 +76,7 @@ char *shell_protect_string(string)
return(buf);
}
+void
print_to_printer(printer, backgrnd, mag, print_all_layers, grid, params)
char printer[];
char *backgrnd;
@@ -111,6 +113,8 @@ print_to_printer(printer, backgrnd, mag,
name = shell_protect_string(cur_filename);
#ifdef I18N
+ /* set the numeric locale to C so we set decimal points for numbers */
+ setlocale(LC_NUMERIC, "C");
sprintf(tmpcmd, "%s %s -L ps -z %s -m %f %s -n %s",
fig2dev_cmd, appres.international ? appres.fig2dev_localize_option : "",
#else
@@ -119,6 +123,10 @@ print_to_printer(printer, backgrnd, mag,
#endif /* I18N */
paper_sizes[appres.papersize].sname, mag/100.0,
appres.landscape ? "-l xxx" : "-p xxx", name);
+#ifdef I18N
+ /* reset to original locale */
+ setlocale(LC_NUMERIC, "");
+#endif /* I18N */
if (appres.correct_font_size)
strcat(tmpcmd," -F ");
@@ -223,9 +231,13 @@ print_to_file(file, lang, mag, xoff, yof
/* start with the command, language and internationalization, if applicable */
#ifdef I18N
+ /* set the numeric locale to C so we set decimal points for numbers */
+ setlocale(LC_NUMERIC, "C");
sprintf(prcmd, "%s %s -L %s -m %f ",
fig2dev_cmd, appres.international ? appres.fig2dev_localize_option : "",
real_lang, mag/100.0);
+ /* reset to original locale */
+ setlocale(LC_NUMERIC, "");
#else
sprintf(prcmd, "%s -L %s -m %f ", fig2dev_cmd, real_lang, mag/100.0);
#endif /* I18N */
@@ -324,6 +336,8 @@ print_to_file(file, lang, mag, xoff, yof
strcat(tmp_name,"_t");
/* make it automatically input the postscript/pdf part (-p option) */
#ifdef I18N
+ /* set the numeric locale to C so we set decimal points for numbers */
+ setlocale(LC_NUMERIC, "C");
sprintf(prcmd, "%s %s -L %s -E %d -p %s -m %f ",
fig2dev_cmd, appres.international ? appres.fig2dev_localize_option : "",
#else
@@ -332,6 +346,10 @@ print_to_file(file, lang, mag, xoff, yof
#endif /* I18N */
!strcmp(lang,"pstex")? "pstex_t": "pdftex_t",
appres.encoding, outfile, mag/100.0);
+#ifdef I18N
+ /* reset to original locale */
+ setlocale(LC_NUMERIC, "");
+#endif /* I18N */
/* add the -D +list if user doesn't want all layers printed */
if (!print_all_layers)
strcat(prcmd, layers);

64
xfig.3.2.4-null.dif Normal file
View File

@ -0,0 +1,64 @@
--- w_dir.c
+++ w_dir.c 2004-03-22 12:17:21.000000000 +0000
@@ -126,6 +126,8 @@
{
XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data;
+ if (!ret_struct)
+ return;
strcpy(CurrentSelectionName, ret_struct->string);
FirstArg(XtNstring, CurrentSelectionName);
if (browse_up) {
@@ -160,6 +162,8 @@
{
XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data;
+ if (!ret_struct)
+ return;
strcpy(CurrentSelectionName, ret_struct->string);
DoChangeDir(CurrentSelectionName);
}
--- w_library.c
+++ w_library.c 2004-03-22 12:19:10.000000000 +0000
@@ -461,6 +461,8 @@
int new_obj;
XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data;
+ if (!ret_struct)
+ return;
new_obj = ret_struct->list_index;
if (icons_made) {
/* unhighlight the current view icon */
--- w_srchrepl.c
+++ w_srchrepl.c 2004-03-22 12:20:38.000000000 +0000
@@ -894,6 +894,8 @@
{
XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data;
+ if (!ret_struct)
+ return;
/* save the selected word */
strcpy(selected_word, ret_struct->string);
/* copy the word to the correct_word ascii widget */
--- w_style.c
+++ w_style.c 2004-03-22 12:13:00.000000000 +0000
@@ -585,7 +585,8 @@
XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data;
- current_family = ret_struct->list_index;
+ if (ret_struct)
+ current_family = ret_struct->list_index;
current_style = -1;
style_update ();
}
@@ -598,7 +599,8 @@
{
XawListReturnStruct *ret_struct = (XawListReturnStruct *) call_data;
- current_style = ret_struct->list_index;
+ if (ret_struct)
+ current_style = ret_struct->list_index;
style_update ();
cur_updatemask = set_style (&current_family_set[current_family].style[current_style]);

183
xfig.3.2.4-quiet.dif Normal file
View File

@ -0,0 +1,183 @@
--- main.c
+++ main.c 2004-08-25 14:21:34.000000000 +0200
@@ -1018,6 +1018,11 @@
setup_sizes(init_canv_wd, init_canv_ht);
}
+ (void) init_tool_menus();
+ (void) init_tool_style_panel();
+ (void) init_tool_ind_pannel();
+ (void) init_tool_canvas();
+
(void) init_main_menus(tool_form, arg_filename);
(void) init_msg(tool_form);
(void) init_mousefun(tool_form);
--- w_canvas.c
+++ w_canvas.c 2004-08-25 14:20:40.000000000 +0200
@@ -173,6 +173,13 @@
~Meta<Key>:EventCanv()\n\
<Expose>:ExposeCanv()\n";
+void
+init_tool_canvas(void)
+{
+ XtAppAddActions(tool_app, canvas_actions, XtNumber(canvas_actions));
+}
+
+int
init_canvas(tool)
Widget tool;
{
@@ -193,7 +200,6 @@
canvas_middlebut_proc = null_proc;
canvas_rightbut_proc = null_proc;
canvas_kbd_proc = canvas_locmove_proc = null_proc;
- XtAppAddActions(tool_app, canvas_actions, XtNumber(canvas_actions));
XtAugmentTranslations(canvas_sw,
XtParseTranslationTable(canvas_translations));
#ifndef NO_COMPKEYDB
@@ -204,13 +210,14 @@
}
/* at this point, the canvas widget is realized so we can get the window from it */
-
+void
setup_canvas()
{
init_grid();
reset_clip_window();
}
+void
canvas_selected(tool, event, params, nparams)
Widget tool;
XButtonEvent *event;
--- w_canvas.h
+++ w_canvas.h 2004-08-25 14:21:18.000000000 +0200
@@ -35,9 +35,12 @@
extern void toggle_show_borders();
extern void clear_canvas();
-extern canvas_selected();
+extern void canvas_selected();
extern void paste_primary_selection();
+extern void init_tool_canvas(void);
+extern int init_canvas(Widget tool);
+
extern int clip_xmin, clip_ymin, clip_xmax, clip_ymax;
extern int clip_width, clip_height;
extern int cur_x, cur_y;
--- w_cmdpanel.c
+++ w_cmdpanel.c 2004-08-25 14:26:00.000000000 +0200
@@ -204,6 +204,13 @@
/* command panel */
void
+init_tool_menus(void)
+{
+ /* add actions to position the menus if the user uses an accelerator */
+ XtAppAddActions(tool_app, menu_actions, XtNumber(menu_actions));
+}
+
+void
init_main_menus(tool, filename)
Widget tool;
char *filename;
@@ -212,6 +219,7 @@
Widget beside = NULL;
DeclareArgs(11);
+
FirstArg(XtNborderWidth, 0);
NextArg(XtNcolormap, tool_cm);
NextArg(XtNdefaultDistance, 0);
@@ -246,8 +254,6 @@
filename_balloon_trigger, (XtPointer) name_panel);
XtAddEventHandler(name_panel, LeaveWindowMask, False,
filename_unballoon, (XtPointer) name_panel);
- /* add actions to position the menus if the user uses an accelerator */
- XtAppAddActions(tool_app, menu_actions, XtNumber(menu_actions));
refresh_view_menu();
}
--- w_cmdpanel.h
+++ w_cmdpanel.h 2004-08-25 14:10:45.000000000 +0200
@@ -33,6 +33,8 @@
extern int num_main_menus();
extern Widget create_menu_item();
extern void refresh_view_menu();
+extern void init_tool_menus(void);
+extern void init_main_menus(Widget tool, char* filename);
/* def for menu */
--- w_indpanel.c
+++ w_indpanel.c 2004-08-25 14:12:57.000000000 +0200
@@ -476,6 +476,12 @@
static ind_sw_info upd_sw_info, upd_set_sw_info, upd_clr_sw_info, upd_tog_sw_info;
void
+init_tool_ind_pannel(void)
+{
+ XtAppAddActions(tool_app, ind_actions, XtNumber(ind_actions));
+}
+
+void
init_ind_panel(tool)
Widget tool;
{
@@ -626,8 +632,6 @@
ind_box = XtCreateManagedWidget("ind_box", boxWidgetClass, ind_panel,
Args, ArgCount);
- XtAppAddActions(tool_app, ind_actions, XtNumber(ind_actions));
-
for (i = 0; i < NUM_IND_SW; ++i) {
sw = &ind_switches[i];
sw->panel = (Widget) NULL; /* not created yet */
--- w_indpanel.h
+++ w_indpanel.h 2004-08-25 14:14:07.000000000 +0200
@@ -34,6 +34,9 @@
extern void wheel_inc_zoom(), wheel_dec_zoom();
#endif /* WHEELMOUSE */
+extern void init_tool_ind_pannel(void);
+extern void init_ind_panel(Widget tool);
+
/* size of buttons in indicator panel */
#define DEF_IND_SW_HT 34
#define DEF_IND_SW_WD 64
--- w_style.c
+++ w_style.c 2004-08-25 14:05:33.000000000 +0200
@@ -759,6 +759,12 @@
/**********************************/
void
+init_tool_style_panel(void)
+{
+ XtAppAddActions (tool_app, style_actions, XtNumber (style_actions));
+}
+
+void
init_manage_style_panel (void)
{
char buf[50];
@@ -966,7 +972,6 @@
XtAddCallback (style_close_style, XtNcallback,
(XtCallbackProc) close_style, (XtPointer) NULL);
- XtAppAddActions (tool_app, style_actions, XtNumber (style_actions));
style_update ();
}
--- w_style.h
+++ w_style.h 2004-08-25 14:06:27.000000000 +0200
@@ -14,6 +14,7 @@
*
*/
+extern void init_tool_style_panel(void);
extern void init_manage_style_panel(void);
extern void setup_manage_style_panel(void);
extern void popup_manage_style_panel(void);

152
xfig.3.2.4-urw-fonts.dif Normal file
View File

@ -0,0 +1,152 @@
--- u_fonts.c
+++ u_fonts.c 2005-10-06 18:55:22.000000000 +0200
@@ -21,7 +21,9 @@
/* X11 font names */
-struct _xfstruct x_fontinfo[NUM_FONTS] = {
+struct _xfstruct x_fontinfo[NUM_FONTS];
+
+struct _xfstruct x_adobe_fontinfo[NUM_FONTS] = {
{"-*-times-medium-r-normal--", (struct xfont*) NULL},
{"-*-times-medium-i-normal--", (struct xfont*) NULL},
{"-*-times-bold-r-normal--", (struct xfont*) NULL},
@@ -59,6 +61,44 @@
{"-*-itc zapf dingbats-*-*-*--", (struct xfont*) NULL},
};
+struct _xfstruct x_urw_fontinfo[NUM_FONTS] = {
+ {"-URW-*Nimbus Roman No9 L-medium-r-normal--", (struct xfont*) NULL}, /* Times-Roman */
+ {"-URW-*Nimbus Roman No9 L-medium-i-normal--", (struct xfont*) NULL}, /* Times-Italic */
+ {"-URW-*Nimbus Roman No9 L-bold-r-normal--", (struct xfont*) NULL}, /* Times-Bold */
+ {"-URW-*Nimbus Roman No9 L-bold-i-normal--", (struct xfont*) NULL}, /* Times-BoldItalic */
+ {"-URW-*Gothic L-medium-r-normal--", (struct xfont*) NULL}, /* AvantGarde-Book */
+ {"-URW-*Gothic L-medium-o-normal--", (struct xfont*) NULL}, /* AvantGarde-BookOblique */
+ {"-URW-*Gothic L-*bold-r-normal--", (struct xfont*) NULL}, /* AvantGarde-Demi */
+ {"-URW-*Gothic L-*bold-o-normal--", (struct xfont*) NULL}, /* AvantGarde-DemiOblique */
+ {"-URW-*Bookman L-medium-r-normal--", (struct xfont*) NULL}, /* Bookman-Light */
+ {"-URW-*Bookman L-medium-i-normal--", (struct xfont*) NULL}, /* Bookman-LightItalic */
+ {"-URW-*Bookman L-*bold-r-normal--", (struct xfont*) NULL}, /* Bookman-Demi */
+ {"-URW-*Bookman L-*bold-i-normal--", (struct xfont*) NULL}, /* Bookman-DemiItalic */
+ {"-URW-*Nimbus Mono L-medium-r-normal--", (struct xfont*) NULL}, /* Courier */
+ {"-URW-*Nimbus Mono L-medium-o-normal--", (struct xfont*) NULL}, /* Courier-Oblique */
+ {"-URW-*Nimbus Mono L-bold-r-normal--", (struct xfont*) NULL}, /* Courier-Bold */
+ {"-URW-*Nimbus Mono L-bold-o-normal--", (struct xfont*) NULL}, /* Courier-BoldOblique */
+ {"-URW-*Nimbus Sans L-medium-r-normal--", (struct xfont*) NULL}, /* Helvetica */
+ {"-URW-*Nimbus Sans L-medium-o-normal--", (struct xfont*) NULL}, /* Helvetica-Oblique */
+ {"-URW-*Nimbus Sans L-bold-r-normal--", (struct xfont*) NULL}, /* Helvetica-Bold */
+ {"-URW-*Nimbus Sans L-bold-o-normal--", (struct xfont*) NULL}, /* Helvetica-BoldOblique */
+ {"-URW-*Nimbus Sans L-medium-r-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow */
+ {"-URW-*Nimbus Sans L-medium-o-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow-Oblique */
+ {"-URW-*Nimbus Sans L-bold-r-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow-Bold */
+ {"-URW-*Nimbus Sans L-bold-o-condensed--", (struct xfont*) NULL}, /* Helvetica-Narrow-BoldOblique */
+ {"-URW-*Century Schoolbook L-medium-r-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-Roman */
+ {"-URW-*Century Schoolbook L-medium-i-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-Italic */
+ {"-URW-*Century Schoolbook L-bold-r-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-Bold */
+ {"-URW-*Century Schoolbook L-bold-i-normal--", (struct xfont*) NULL}, /* NewCenturySchlbk-BoldItalic */
+ {"-URW-*Palladio L-medium-r-normal--", (struct xfont*) NULL}, /* Palatino-Roman */
+ {"-URW-*Palladio L-medium-i-normal--", (struct xfont*) NULL}, /* Palatino-Italic */
+ {"-URW-*Palladio L-bold-r-normal--", (struct xfont*) NULL}, /* Palatino-Bold */
+ {"-URW-*Palladio L-bold-i-normal--", (struct xfont*) NULL}, /* Palatino-BoldItalic */
+ {"-URW-*Standard Symbols L-medium-r-normal--", (struct xfont*) NULL}, /* Symbol */
+ {"-URW-*Chancery L-medium-i-normal--", (struct xfont*) NULL}, /* ZapfChancery-MediumItalic */
+ {"-URW-*Dingbats-medium-r-normal--", (struct xfont*) NULL}, /* ZapfDingbats */
+};
+
/* Use the following font names for any font that doesn't exist in the table above.
* These come with the Open Group X distribution so they should be a common set.
*
--- u_fonts.h
+++ u_fonts.h 2005-10-06 19:19:30.000000000 +0200
@@ -32,9 +32,6 @@
extern int psfontnum();
extern int latexfontnum();
-extern struct _xfstruct x_fontinfo[], x_backup_fontinfo[];
-extern struct _fstruct ps_fontinfo[];
-extern struct _fstruct latex_fontinfo[];
/* element of linked list for each font
The head of list is for the different font NAMES,
@@ -61,5 +58,12 @@
* sizes */
};
+extern struct _xfstruct x_fontinfo[];
+extern struct _xfstruct x_urw_fontinfo[];
+extern struct _xfstruct x_adobe_fontinfo[];
+extern struct _xfstruct x_backup_fontinfo[];
+extern struct _fstruct ps_fontinfo[];
+extern struct _fstruct latex_fontinfo[];
+
int x_fontnum();
#endif /* U_FONTS_H */
--- w_drawprim.c
+++ w_drawprim.c 2005-10-06 19:12:02.000000000 +0200
@@ -99,6 +99,22 @@
appres.buttonFont, appres.normalFont);
button_font = XLoadQueryFont(tool_d, appres.normalFont);
}
+
+ /*
+ * Check for URW fonts, if not found use Adobe fonts
+ */
+ strcpy(template,x_urw_fontinfo[0].template);
+ strcat(template,"0-0-*-*-*-*-");
+ if (strstr(template,"ymbol") == NULL && strstr(template,"ingbats") == NULL)
+ strcat(template,"ISO8859-*");
+ else
+ strcat(template,"*-*");
+ if ((fontlist = XListFonts(tool_d, template, 1, &count)) == (char**)0)
+ memcpy(&x_fontinfo, &x_adobe_fontinfo, sizeof(struct _xfstruct) * NUM_FONTS);
+ else
+ memcpy(&x_fontinfo, &x_urw_fontinfo, sizeof(struct _xfstruct) * NUM_FONTS);
+ XFreeFontNames(fontlist);
+
/*
* Now initialize the font structure for the X fonts corresponding to the
* Postscript fonts for the canvas. OpenWindows can use any LaserWriter
@@ -119,8 +135,8 @@
strcpy(template,x_fontinfo[0].template); /* nope, check for font size 0 */
strcat(template,"0-0-*-*-*-*-");
/* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
- if (strstr(template,"symbol") == NULL &&
- strstr(template,"zapf dingbats") == NULL)
+ if (strstr(template,"ymbol") == NULL &&
+ strstr(template,"ingbats") == NULL)
strcat(template,"ISO8859-*");
else
strcat(template,"*-*");
@@ -139,8 +155,8 @@
strcpy(template,x_fontinfo[f].template);
strcat(template,"*-*-*-*-*-*-");
/* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
- if (strstr(template,"symbol") == NULL &&
- strstr(template,"zapf dingbats") == NULL)
+ if (strstr(template,"ymbol") == NULL &&
+ strstr(template,"ingbats") == NULL)
strcat(template,"ISO8859-*");
else
strcat(template,"*-*");
@@ -287,8 +303,8 @@
/* attach pointsize to font name */
strcat(template,"%d-*-*-*-*-*-");
/* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
- if (strstr(template,"symbol") == NULL &&
- strstr(template,"zapf dingbats") == NULL)
+ if (strstr(template,"ymbol") == NULL &&
+ strstr(template,"ingbats") == NULL)
strcat(template,"ISO8859-*");
else
strcat(template,"*-*");
@@ -299,8 +315,8 @@
strcpy(template,x_backup_fontinfo[fnum].template);
strcat(template,"%d-*-*-*-*-*-");
/* add ISO8859 (if not Symbol font or ZapfDingbats) to font name */
- if (strstr(template,"symbol") == NULL &&
- strstr(template,"zapf dingbats") == NULL)
+ if (strstr(template,"ymbol") == NULL &&
+ strstr(template,"ingbats") == NULL)
strcat(template,"ISO8859-*");
else
strcat(template,"*-*");

535
xfig.3.2.4.dif Normal file
View File

@ -0,0 +1,535 @@
--- Fig-color.ad
+++ Fig-color.ad 2006-07-31 17:56:25.000000000 +0200
@@ -76,6 +76,12 @@ Fig*MenuButton*background: gray83
! in the color editor popup
Fig*mixedEdit.background: gray83
+Fig*mode_panel.background: gray67
+Fig*mode_panel*topShadow:: white
+Fig*mode_panel*bottomShadow: gray17
+Fig*mode_panel*topShadowPixel: white
+Fig*mode_panel*bottomShadowPixel: gray17
+
Fig*cancel.background: gray88
Fig*dismiss.background: gray88
Fig*commands*background: gray88
@@ -85,12 +91,35 @@ Fig*horizontal.background: gray88
Fig*topruler.background: gray95
Fig*sideruler.background: gray95
+Fig*topruler.foreground: black
+Fig*sideruler.foreground: black
! file panel and scrollbar
Fig*FigList*background: gray95
Fig*List*background: gray95
-Fig*Scrollbar.background: gray95
+Fig*Scrollbar.background: gray77
+Fig*Scrollbar.foreground: gray37
+Fig*ScrollbarBackground: gray67
+Fig*ScrollbarForeground: gray37
+
+Fig*horizontal.shadowWidth: 2
+Fig*horizontal.topShadowPixel: gray95
+Fig*horizontal.bottomShadowPixel: gray37
+Fig*horizontal.topShadow: gray95
+Fig*horizontal.bottomShadow: gray37
+
+Fig*Scrollbar.shadowWidth: 2
+Fig*Scrollbar.topShadow: gray95
+Fig*Scrollbar.bottomShadow: gray37
+Fig*Scrollbar.topShadowPixel: gray95
+Fig*Scrollbar.bottomShadowPixel: gray37
+
+Fig*stdColor.shadowWidth: 2
+Fig*stdColor.topShadow: gray95
+Fig*stdColor.bottomShadow: gray37
+Fig*stdColor.topShadowPixel: gray95
+Fig*stdColor.bottomShadowPixel: gray37
Fig*Label.background: gray80
Fig*ind_box.background: gray80
--- Fig.ad
+++ Fig.ad 2006-07-31 17:56:25.000000000 +0200
@@ -10,6 +10,8 @@ Fig.version: 3.2.4
Fig*AllowShellResize: false
+Fig.inches: false
+
! Image editor - can edit imported image
Fig.image_editor: xv
@@ -20,7 +22,7 @@ Fig.ghostscript: gs
! This is for viewing the xfig html reference.
! For netscape, this command will open the help pages in a running netscape,
! or start a new netscape if one isn't already running
-Fig.browser: netscape -remote 'openFile(%f)' || netscape %f
+Fig.browser: /usr/X11R6/lib/X11/xfig/browser %f
! pdfviewer - put your favorite pdf viewer here.
! This is for viewing the xfig how-to guide and man pages
@@ -99,60 +101,62 @@ Fig.internalborderwidth: 1
! I include both for compatibility. Be sure to change both values when
! modifying them.
- Fig*horizontal.shadowWidth: 0
- Fig*horizontal.topShadowPixel: black
- Fig*horizontal.bottomShadowPixel: white
- Fig*horizontal.topShadow: black
- Fig*horizontal.bottomShadow: white
+Fig*horizontal.shadowWidth: 0
+Fig*horizontal.topShadowPixel: black
+Fig*horizontal.bottomShadowPixel: white
+Fig*horizontal.topShadow: black
+Fig*horizontal.bottomShadow: white
! the following is done so the widget set doesn't try to make shades of
! the scrollbar shadows (even though the width is 0 it takes more colors)
- Fig*Scrollbar.shadowWidth: 0
- Fig*Scrollbar.topShadow: black
- Fig*Scrollbar.bottomShadow: white
- Fig*Scrollbar.topShadowPixel: black
- Fig*Scrollbar.bottomShadowPixel: white
+
+Fig*Scrollbar.shadowWidth: 0
+Fig*Scrollbar.topShadow: black
+Fig*Scrollbar.bottomShadow: white
+Fig*Scrollbar.topShadowPixel: black
+Fig*Scrollbar.bottomShadowPixel: white
! this is for the standard color buttons in the color panel
- Fig*stdColor.shadowWidth: 2
- Fig*stdColor.topShadow: black
- Fig*stdColor.bottomShadow: white
- Fig*stdColor.topShadowPixel: black
- Fig*stdColor.bottomShadowPixel: white
+
+Fig*stdColor.shadowWidth: 2
+Fig*stdColor.topShadow: black
+Fig*stdColor.bottomShadow: white
+Fig*stdColor.topShadowPixel: black
+Fig*stdColor.bottomShadowPixel: white
! turn off any shadows for the user color cells
- Fig*colorMemory.shadowWidth: 0
+Fig*colorMemory.shadowWidth: 0
! You may need or want to adjust the highlight thickness for the mode
! and indicator panels depending on the results. If it is too thick
! it will erase part of the button graphics.
- Fig*mode_panel*highlightThickness: 1
- Fig*ind_panel.ind_box.button_form.button.highlightThickness: 1
+Fig*mode_panel*highlightThickness: 1
+Fig*ind_panel.ind_box.button_form.button.highlightThickness: 1
! Same for the popup panels from the indicator panel
- Fig*set_indicator_panel*Command.highlightThickness: 1
+Fig*set_indicator_panel*Command.highlightThickness: 1
! If you use the 3D Athena widget set and the small icons for the mode panel
! (because you have a small screen; see Imakefile) you may want to reduce
! the shadow width to 1 or 0. Uncomment the following in that case:
-! Fig*mode_panel*shadowWidth: 1
+Fig*mode_panel*shadowWidth: 1
! The following is for the update marker in the upper-right corner of the
! indicator buttons. You may not want any highlight thickness because
! the boxes are so small.
- Fig*ind_panel.ind_box.button_form.update.highlightThickness: 0
+Fig*ind_panel.ind_box.button_form.update.highlightThickness: 1
! This sets the shadows for the spinner arrows
- Fig*spinup.shadowWidth: 2
- Fig*spindown.shadowWidth: 2
+Fig*spinup.shadowWidth: 0
+Fig*spindown.shadowWidth: 0
! This gets rid of that funny black line that sometimes borders the canvas
- Fig*canvas.shadowWidth: 0
+Fig*canvas.shadowWidth: 0
!if on monochrome server, or no Fig-color app-defaults file
! This background resource shows between the buttons like a border
- Fig*mode_panel.background: black
- Fig*mode_panel.foreground: black
+Fig*mode_panel.background: black
+Fig*mode_panel.foreground: black
! Specify a private Compose key database file. If this resource contains a "/"
! then the wired-in name of the xfig global directory won't be prefixed to it.
--- Imakefile
+++ Imakefile 2006-07-31 18:20:06.000000000 +0200
@@ -49,7 +49,7 @@ XCOMM Redefine the following if your PNG
XCOMM are in different places
PNGLIBDIR = $(USRLIBDIR)
-PNGINC = -I/usr/local/include
+PNGINC = -I/usr/include
XCOMM If don't want JPEG support, comment out the #define USEJPEG line
XCOMM Uncomment the #define for USEJPEG if you want to be able to import
@@ -68,8 +68,8 @@ XCOMM You must have version 5b or newer
#ifdef USEJPEG
#ifdef USEINSTALLEDJPEG
-JPEGLIBDIR = /usr/local/lib
-JPEGINC = -I/usr/include/X11
+JPEGLIBDIR = /usr/lib
+JPEGINC = -I/usr/include
#else
JPEGLIBDIR = ../jpeg
JPEGINC = -I$(JPEGLIBDIR)
@@ -87,8 +87,8 @@ XCOMM in /contrib/libraries.
XCOMM Change XPMLIBDIR if necessary to point to the xpm library (libXpm)
XCOMM Change XPMINC if necessary to point to the include file for xpm (xpm.h)
-XCOMM #define USEXPM
-XCOMM #define USEXPM_ICON
+#define USEXPM
+#define USEXPM_ICON
#ifdef USEXPM
XPMLIBDIR = $(USRLIBDIR)
@@ -105,17 +105,20 @@ XCOMM the 3d Athena Widget Set (highly r
XCOMM Then be sure to change the XAW3DINC to point to the directory where your
XCOMM 3D Athena widget headers are located
-XCOMM #define XAW3D
+#define XAW3D
#ifdef XAW3D
XAW3DINC = -I/usr/include/X11/Xaw3d
DUSEXAW3D = -DXAW3D
XAWLIB = -lXaw3d
+#else
+XAWSRC = SmeBSB.c SimpleMenu.c
+XAWOBJ = SmeBSB.o SimpleMenu.o
#endif
XCOMM Uncomment the following if you have a wheel mouse. See docs for description.
-XCOMM #define WHEELMOUSE
+#define WHEELMOUSE
#ifdef WHEELMOUSE
DUSEWHEELMOUSE = -DWHEELMOUSE
@@ -154,7 +157,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 use (and change) the following if you want the multi-key data base file
XCOMM somewhere other than the standard X11 library directory
@@ -162,11 +165,11 @@ XCOMM be sure to comment out the second
XCOMM XFIGLIBDIR = /usr/local/lib/xfig
XCOMM use this if you want the multi-key data base file in the standard X11 tree
-XFIGLIBDIR = $(LIBDIR)/xfig
+XFIGLIBDIR = _DATA/xfig
XCOMM XFIGDOCDIR tells where the html and pdf documentation should go
XCOMM XFIGDOCDIR = $(DOCDIR)/xfig
-XFIGDOCDIR = /usr/share/doc/xfig
+XFIGDOCDIR = /usr/share/doc/packages/xfig
XCOMM MANDIR tells where the standard man pages should go (no need to change it
XCOMM if you want the man pages installed in the standard place on your system
@@ -200,7 +203,7 @@ XCOMM instead.
XCOMM Add `-DCACHE_SIZE_LIMIT=xxxx' where xxxx is the cache size in kilobytes.
XCOMM A cache size of zero turns caching off.
-CACHE = -DCACHE_BITMAPS -DCACHE_SIZE_LIMIT=300
+CACHE = -DCACHE_BITMAPS -DCACHE_SIZE_LIMIT=512 -DMAXNUMPTS=50000 -DBSDLPR
XCOMM For SYSV systems with BSD-style printer command which use lpr instead of
XCOMM lp (SGI is one such machine), add -DBSDLPR to the DEFINES variable
@@ -214,6 +217,7 @@ XCOMM number of vertices.
XCOMM If you want a compiler other than "cc", define it here
XCOMM CC = /opt/SUNWspro/bin/cc
+CC = gcc
XCOMM *****************************************************
XCOMM *****************************************************
@@ -234,7 +238,7 @@ DEPLIBJPEG = $(JPEGLIBDIR)/libjpeg.a
#endif /* USEJPEG */
#ifdef I18N
-I18N_DEFS = -DI18N -DSETLOCALE
+I18N_DEFS = -DI18N
I18N_SRC = w_i18n.c
I18N_OBJ = w_i18n.o
#endif
@@ -304,7 +308,7 @@ XFIGSRC = d_arc.c d_arcbox.c d_box.c d_e
w_export.c w_file.c w_fontbits.c w_fontpanel.c w_grid.c w_icons.c \
w_indpanel.c w_library.c w_modepanel.c w_mousefun.c w_msgpanel.c \
w_print.c w_rottext.c w_rulers.c w_setup.c w_style.c w_util.c w_zoom.c \
- $(I18N_SRC) SmeCascade.c SmeBSB.c SimpleMenu.c
+ $(I18N_SRC) SmeCascade.c $(XAWSRC)
XFIGOBJ = d_arc.o d_arcbox.o d_box.o d_ellipse.o d_picobj.o \
d_subspline.o d_line.o d_regpoly.o d_spline.o d_text.o \
@@ -326,7 +330,7 @@ XFIGOBJ = d_arc.o d_arcbox.o d_box.o d_e
w_export.o w_file.o w_fontbits.o w_fontpanel.o w_grid.o w_icons.o \
w_indpanel.o w_library.o w_modepanel.o w_mousefun.o w_msgpanel.o \
w_print.o w_rottext.o w_rulers.o w_setup.o w_style.o w_util.o w_zoom.o \
- $(I18N_OBJ) SmeCascade.o SmeBSB.o SimpleMenu.o
+ $(I18N_OBJ) SmeCascade.o $(XAWOBJ)
XCOMM Other dependencies should be handled by "make depend"
--- e_addpt.c
+++ e_addpt.c 2006-07-31 17:56:25.000000000 +0200
@@ -52,6 +52,7 @@ point_adding_selected()
force_nopositioning();
force_anglegeom();
constrained = MOVE_ARB;
+ reset_action_on();
}
static void
--- e_align.c
+++ e_align.c 2006-07-31 17:56:25.000000000 +0200
@@ -63,6 +63,7 @@ align_selected()
canvas_middlebut_proc = init_align_canvas;
canvas_rightbut_proc = null_proc;
set_cursor(pick15_cursor);
+ reset_action_on();
}
/* align objects to the whole canvas */
--- e_arrow.c
+++ e_arrow.c 2006-07-31 17:56:25.000000000 +0200
@@ -47,6 +47,7 @@ arrow_head_selected()
canvas_middlebut_proc = point_search_middle;
canvas_rightbut_proc = null_proc;
set_cursor(pick9_cursor);
+ reset_action_on();
}
static void
--- e_break.c
+++ e_break.c 2006-07-31 17:56:25.000000000 +0200
@@ -43,6 +43,7 @@ break_selected()
canvas_middlebut_proc = object_search_middle;
canvas_rightbut_proc = null_proc;
set_cursor(pick15_cursor);
+ reset_action_on();
}
static void
@@ -82,8 +83,10 @@ init_break(p, type, x, y, px, py, loc_ta
list_delete_compound(&objects.compounds, cur_c);
tail(&objects, &object_tails);
append_objects(&objects, cur_c, &object_tails);
+#if 0
/* add the depths from this compound */
add_compound_depth(cur_c);
+#endif
toggle_markers_in_compound(cur_c);
set_tags(cur_c, loc_tag);
set_action(F_BREAK);
--- e_convert.c
+++ e_convert.c 2006-07-31 17:56:25.000000000 +0200
@@ -47,6 +47,7 @@ convert_selected()
canvas_middlebut_proc = null_proc;
canvas_rightbut_proc = point_search_right;
set_cursor(pick15_cursor);
+ reset_action_on();
}
static void
--- e_deletept.c
+++ e_deletept.c 2006-07-31 17:56:25.000000000 +0200
@@ -43,6 +43,7 @@ delete_point_selected()
canvas_middlebut_proc = null_proc;
canvas_rightbut_proc = null_proc;
set_cursor(pick9_cursor);
+ reset_action_on();
}
static void
--- e_flip.c
+++ e_flip.c 2006-07-31 17:56:25.000000000 +0200
@@ -61,6 +61,7 @@ flip_ud_selected()
setcenter = 0;
setanchor = 0;
flip_selected();
+ reset_action_on();
}
void
@@ -76,6 +77,7 @@ flip_lr_selected()
setcenter = 0;
setanchor = 0;
flip_selected();
+ reset_action_on();
}
static void
--- e_movept.c
+++ e_movept.c 2006-07-31 17:56:25.000000000 +0200
@@ -80,6 +80,7 @@ move_point_selected()
canvas_rightbut_proc = null_proc;
set_cursor(pick9_cursor);
force_anglegeom();
+ reset_action_on();
}
static void
--- e_rotate.c
+++ e_rotate.c 2006-07-31 17:56:25.000000000 +0200
@@ -94,6 +94,7 @@ rotate_selected()
canvas_middlebut_proc = object_search_middle;
canvas_rightbut_proc = set_unset_center;
set_cursor(pick15_cursor);
+ reset_action_on();
}
static void
--- e_update.c
+++ e_update.c 2006-07-31 17:56:25.000000000 +0200
@@ -64,6 +64,7 @@ update_selected()
set_cursor(pick9_cursor);
/* manage on the update buttons */
manage_update_buts();
+ reset_action_on();
}
static int
--- fig.h
+++ fig.h 2006-07-31 17:56:25.000000000 +0200
@@ -26,6 +26,7 @@ extern char *my_strdup();
#if defined(ultrix) || defined(__bsdi__) || defined(Mips) || defined(apollo)
#include <sys/types.h> /* for stat structure */
#endif
+#include <sys/param.h>
#include <sys/stat.h>
#if defined(__convex__) && defined(__STDC__)
--- mode.h
+++ mode.h 2006-07-31 17:56:25.000000000 +0200
@@ -19,7 +19,7 @@
#define MODE_H
#define F_NULL 0
-#define FIRST_DRAW_MODE F_CIRCLE_BY_RAD
+#define FIRST_DRAW_MODE F_CIRCLE_BY_RAD
#define F_CIRCLE_BY_RAD 1
#define F_CIRCLE_BY_DIA 2
#define F_ELLIPSE_BY_RAD 3
@@ -38,7 +38,7 @@
#define F_PICOBJ 16
#define F_PLACE_LIB_OBJ 17
-#define FIRST_EDIT_MODE F_GLUE
+#define FIRST_EDIT_MODE F_GLUE
#define F_GLUE 30
#define F_BREAK 31
#define F_SCALE 32
--- w_canvas.c
+++ w_canvas.c 2006-07-31 17:56:25.000000000 +0200
@@ -529,6 +529,7 @@ reset_click_counter(widget, closure, eve
/* clear the canvas - this can't be called to clear a pixmap, only a window */
+void
clear_canvas()
{
/* clear the splash graphic if it is still on the screen */
--- w_canvas.h
+++ w_canvas.h 2006-07-31 17:56:25.000000000 +0200
@@ -33,6 +33,7 @@ extern void toggle_show_balloons();
extern void toggle_show_lengths();
extern void toggle_show_vertexnums();
extern void toggle_show_borders();
+extern void clear_canvas();
extern canvas_selected();
extern void paste_primary_selection();
--- w_menuentry.c
+++ w_menuentry.c 2006-07-31 17:56:25.000000000 +0200
@@ -170,7 +170,8 @@ Region region;
gc = entry->sme_bsb.norm_gray_gc;
}
- if (entry->sme_bsb.label != NULL) {
+/* if (entry->sme_bsb.label != NULL) { */
+ if (entry->sme_bsb.label == XtName((Widget)(entry))) {
int x_loc = entry->sme_bsb.left_margin;
int len = strlen(entry->sme_bsb.label);
char * label = entry->sme_bsb.label;
--- w_srchrepl.c
+++ w_srchrepl.c 2006-07-31 17:56:25.000000000 +0200
@@ -56,7 +56,6 @@ There is currently no way to undo replac
#include "w_util.h"
#include "u_create.h"
#include <stdarg.h>
-
#define MAX_MISSPELLED_WORDS 200
#define SEARCH_WIDTH 496 /* width of search message and results */
--- w_util.c
+++ w_util.c 2006-07-31 17:56:25.000000000 +0200
@@ -1102,7 +1102,7 @@ check_action_on()
finish_text_input(0,0,0);/* finish up any text input */
else {
if (cur_mode == F_PLACE_LIB_OBJ)
- cancel_place_lib_obj();
+ cancel_place_lib_obj(0, 0, 0);
else {
put_msg("Finish (or cancel) the current operation before changing modes");
beep();
--- Doc/xfig.html
+++ Doc/xfig.html 2006-07-31 17:56:25.000000000 +0200
@@ -848,6 +848,20 @@ between all buttons and panels (default
</DL>
<P>
+<B>-international</B>
+
+<DL COMPACT>
+<DT><DD>
+Switch on international support (mainly Japanese
+and Korean), users of ISO Latin 1 (ISO-8859-1)
+probably should not use this, therefore the international
+support is switched off by default for locales using ISO-8859-1*
+codesets. For all other locales this option is already used
+by default.
+</DL>
+
+<P>
+
<B>-jpeg</B>[<B>_quality</B>]
@@ -2208,6 +2222,7 @@ inches boolean true
-metric (false)
installowncmap boolean false -installowncmap
internalborderwidth integer 1 -internalBW
+international boolean false -international
jpeg_quality integer 75 -jpeg_quality
justify boolean false -left (false),
-right (true)
--- Doc/xfig.man
+++ Doc/xfig.man 2006-07-31 17:56:25.000000000 +0200
@@ -531,6 +531,15 @@ Use lines of width
between all buttons and panels (default = 1).
.\"-------
.At
+.BR \-international
+.Ap
+Switch on international support (mainly Japanese and Korean),
+users of ISO Latin 1 (ISO-8859-1) probably should not use this,
+therefore the international support is switched off by default
+for locales using ISO-8859-1* codesets. For all other locales this
+option is already used by default.
+.\"-------
+.At
.BR \-jpeg [ _quality ]
.I quality
.Ap

3
xfig.3.2.4.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cd29a4aa94f842c954c8c7edb9ff11576ea2f5bddac0923fa9aec6621404e3b2
size 4784794

323
xfig.changes Normal file
View File

@ -0,0 +1,323 @@
-------------------------------------------------------------------
Thu Nov 16 14:18:54 CET 2006 - werner@suse.de
- Set LC_NUMERIC to POSIX before print or export data (bug #213942)
-------------------------------------------------------------------
Tue Nov 7 16:01:20 CET 2006 - ro@suse.de
- fix docu permissions
-------------------------------------------------------------------
Mon Jul 31 19:17:02 CEST 2006 - werner@suse.de
- Use Imake defines for LIBDIR/SHAREDIR switch
-------------------------------------------------------------------
Fri Jul 28 19:22:50 CEST 2006 - werner@suse.de
- Make it build with X11R7
-------------------------------------------------------------------
Wed Feb 15 10:36:07 CET 2006 - stbinner@suse.de
- add GenericName to .desktop file
-------------------------------------------------------------------
Wed Jan 25 21:43:07 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
-------------------------------------------------------------------
Thu Oct 6 19:28:43 CEST 2005 - werner@suse.de
- Make URW fonts an option, use Adobe as fallback
-------------------------------------------------------------------
Wed Aug 31 13:33:19 CEST 2005 - werner@suse.de
- Fix single byte buffer overflow due pedantic gcc4 (bug #114344)
-------------------------------------------------------------------
Mon Aug 29 11:30:10 CEST 2005 - ro@suse.de
- use own desktop file with icon (#113672)
-------------------------------------------------------------------
Tue Mar 1 10:35:20 CET 2005 - meissner@suse.de
- fixed font struct definitions to be after struct
definition for gcc4.
- -Wno-all is actually -w.
-------------------------------------------------------------------
Thu Aug 26 11:53:39 CEST 2004 - werner@suse.de
- Allow arguments in the wrapper script for xfig
-------------------------------------------------------------------
Wed Aug 25 15:05:13 CEST 2004 - werner@suse.de
- Avoid nasty warnings about not found actions
- Use wrapper script to avoid UTF-8 for the program its self
-------------------------------------------------------------------
Fri Aug 13 16:03:35 CEST 2004 - werner@suse.de
- Filelist: Add pixmap of xfig (#43698)
- Package docu: correct dir name in PDB (#43698)
-------------------------------------------------------------------
Fri May 28 11:35:57 CEST 2004 - adrian@suse.de
- fix invalid Categories (#41338)
-------------------------------------------------------------------
Tue Apr 6 17:00:46 CEST 2004 - werner@suse.de
- Add application desktop file for xfig (bug #38507 ???)
-------------------------------------------------------------------
Mon Mar 22 13:29:27 CET 2004 - werner@suse.de
- Fix NULL pointer access (bug #36650)
-------------------------------------------------------------------
Thu Mar 18 17:43:45 CET 2004 - werner@suse.de
- Remove .bak's from file list (bug #36311)
-------------------------------------------------------------------
Thu Mar 11 15:53:55 CET 2004 - werner@suse.de
- Add browser script for detection of varisou web browsers (#35669)
- Add security fix for temporary files
- Fix doc location
- Avoid extrem long build logs
-------------------------------------------------------------------
Tue Feb 3 18:55:23 CET 2004 - werner@suse.de
- Update to 3.2.4
-------------------------------------------------------------------
Sat Jan 10 17:38:27 CET 2004 - adrian@suse.de
- build as user
-------------------------------------------------------------------
Tue Jul 22 13:20:15 CEST 2003 - hare@suse.de
- Fixed function declaration.
-------------------------------------------------------------------
Fri Jun 13 08:39:58 CEST 2003 - kukuk@suse.de
- Add workaround for brp-symlink script
-------------------------------------------------------------------
Thu Jun 12 10:51:39 CEST 2003 - kukuk@suse.de
- Use BuildRoot
- Fix filelist
-------------------------------------------------------------------
Fri May 9 12:35:24 CEST 2003 - mfabian@suse.de
- fix Bugzilla #26734: extend the fontsets in
xfig-international-std-fonts.dif to always match something to
avoid warnings "Missing charsets in String to FontSet conversion"
even if only few fonts are installed.
-------------------------------------------------------------------
Thu May 8 20:46:46 CEST 2003 - mfabian@suse.de
- adapt font names in xfig.3.2.3d-urw-fonts.dif to the names
as they are auto generated by mkfontscale since SuSE Linux 8.2.
- don't print warnings concerning input styles when compose is
used, input styles don't matter for compose.
-------------------------------------------------------------------
Mon Mar 18 21:19:14 CET 2002 - mfabian@suse.de
- fix bug #15077, don't exit when XSetLocaleModifiers("") fails,
this would make it impossible to use the '-international' option
unless some input server is running, which is nonsense for most
non-Asian languages e.g. for Czech.
- enable '-international' automatically when
NULL == strcasestr(nl_langinfo(CODESET),"ISO-8859-1")
(i.e. enable it automatically for Czech as well).
- use better fonts for on screen display of Times-Roman and
Times-Bold when '-international' is used.
-------------------------------------------------------------------
Mon Mar 18 12:45:13 CET 2002 - werner@suse.de
- Fix bug # 15076: add link /usr/X11R6/lib/X11/xfig/html/
pointing to /usr/share/doc/packages/xfig/html/,
add link /usr/X11R6/lib/X11/xfig/xfig.html pointing to
/usr/share/doc/packages/xfig/xfig.html, add link
/usr/X11R6/lib/X11/xfig/xfig-howto.pdf pointing to
/usr/share/doc/packages/xfig/xfig-howto.pdf
-------------------------------------------------------------------
Thu Mar 7 12:43:21 CET 2002 - werner@suse.de
- Fix bug # 14588: add link /usr/X11R6/lib/X11/xfig/Libraries
pointing to /usr/share/doc/packages/xfig/Examples/Libraries
-------------------------------------------------------------------
Fri Feb 22 18:28:57 CET 2002 - mfabian@suse.de
- use the URW fonts for display on X11 instead of bitmap fonts.
Using the URW fonts for display on X11 *and* for printing with
Ghostscript has the advantage that printout looks much more
similar to the preview on X11. Much more WYSIWYG now.
On top of that, the bitmap fonts could not be scaled anymore
because we now have ":unscaled" added to every directory in
the font path which contains only bitmap fonts. Therefore
changing the font size in xfig ceased to work on X11, it worked
only in the PostScript output. Because of this the X11 display
was very different from the PostScript output.
- add font-test.fig as a sample file to test the correct display
of the URW fonts.
- add xfig.3.2.3d-xim.dif to fix XIM for Japanese and Korean.
(didn't work at all previously because a call to
XSetLocaleModifiers() was missing)
- switch on the '-international' option for all locales using
codesets different from 'ISO-8859-*' on by default.
- remove Korean app-defaults. The only reason for it's existence
was to set 'Fig.international: true' apart from that it was
identical to the standard app-defaults file. And because of
some bug (which I still don't understand) it wasn't read anyway
and therefore achieved nothing.
-------------------------------------------------------------------
Fri Feb 1 00:26:07 CET 2002 - ro@suse.de
- changed neededforbuild <libpng> to <libpng-devel-packages>
-------------------------------------------------------------------
Tue Dec 11 12:45:56 CET 2001 - werner@suse.de
- Add forgotten examples
- Add forgotten docs
-------------------------------------------------------------------
Mon Dec 10 16:33:10 CET 2001 - werner@suse.de
- Update to version 3.2.3d
-------------------------------------------------------------------
Tue May 8 18:47:29 CEST 2001 - mfabian@suse.de
- bzip2 sources
-------------------------------------------------------------------
Thu Jan 25 17:17:38 CET 2001 - violiet@suse.de
- added Korean resource.
-------------------------------------------------------------------
Thu Dec 14 15:31:00 CET 2000 - werner@suse.de
- Fixed the improve of the object searching at higher zooms (bug#4672)
-------------------------------------------------------------------
Tue Oct 10 16:46:11 CEST 2000 - werner@suse.de
- Move XtSetLanguageProc after XtAppInitialize because otherwise
LC_NUMERIC will be overwritten by LANG.
-------------------------------------------------------------------
Fri Sep 15 17:17:22 CEST 2000 - werner@suse.de
- Update to 3.2.3c
* include bug fix for f_read.c
* Enable international support at compile time but disable
it at run time (works only for Japanese and Korean).
User could use -international
* Mention -international in the manual and html page
-------------------------------------------------------------------
Fri Jun 30 15:37:59 CEST 2000 - werner@suse.de
- Workaround for un-initialized label in sme_bsb class
-------------------------------------------------------------------
Wed May 31 16:22:54 CEST 2000 - werner@suse.de
- use %{_defaultdocdir}
-------------------------------------------------------------------
Mon Mar 27 12:48:09 CEST 2000 - werner@suse.de
- Avoid sparc nasties
-------------------------------------------------------------------
Fri Mar 24 14:46:11 CET 2000 - werner@suse.de
- Update to new version 3.2.3a
- Add patch for special jpeg version
- Change some minor shadow colorings
-------------------------------------------------------------------
Mon Sep 13 17:23:57 CEST 1999 - bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
-------------------------------------------------------------------
Wed Apr 7 20:35:51 CEST 1999 - werner@suse.de
- Use the macro __need___va_list instead of moving varargs.h
- Integrate the cut+paste patch
- Use colored XPM icon
-------------------------------------------------------------------
Fri Mar 5 01:00:51 MET 1999 - ro@suse.de
- move varargs topward to make it compile
-------------------------------------------------------------------
Wed Dec 9 16:40:43 MET 1998 - max@suse.de
- added whole /usr/X11R6/lib/X11/xfig path to the file list, to get
online documentation and cliparts into the rpm package.
-------------------------------------------------------------------
Fri Oct 30 11:24:41 MET 1998 - ro@suse.de
- update to 3.2.2
-------------------------------------------------------------------
Thu Sep 17 16:56:38 MEST 1998 - ro@suse.de
- don't redeclare sys_errlist for glibc
-------------------------------------------------------------------
Mon Oct 20 13:35:40 MEST 1997 - ro@suse.de
- ready for autobuild
----------------------------------------------------------------------------
Tue May 27 20:03:59 MEST 1997 - florian@suse.de
- update to version 3.2
----------------------------------------------------------------------------
Tue May 27 20:03:59 MEST 1997 - florian@suse.de
- update to version 3.2.0-beta3
- add more docu and examples
----------------------------------------------------------------------------
Wed Nov 6 00:13:26 CET 1996 - florian@suse.de
- changed to use cm as default metric and not inches

10
xfig.desktop Normal file
View File

@ -0,0 +1,10 @@
[Desktop Entry]
Categories=VectorGraphics
Exec=@@BINDIR@@/xfig
InitialPreference=2
MimeType=image/x-xfig
Name=xfig
GenericName=Vector Drawing
Terminal=false
Type=Application
Icon=xfig

17
xfig.sh Normal file
View File

@ -0,0 +1,17 @@
#!/bin/sh
#
# Reset UTF-8 charmaping to a more xfig compatible one
#
for lc in LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE \
LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME \
LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT \
LC_IDENTIFICATION LC_ALL
do
eval val="\$$lc"
test -n "$val" || continue
case "$val" in
*.UTF-8) eval $lc=\${val%[.@]*} ;;
esac
done
unset ret val
exec -a $0 @@BINDIR@@/xfig.bin ${1+"$@"}

300
xfig.spec Normal file
View File

@ -0,0 +1,300 @@
#
# spec file for package xfig (Version 3.2.4)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: xfig
BuildRequires: libjpeg-devel libpng-devel netpbm update-desktop-files xaw3d xorg-x11 xorg-x11-devel
License: X11/MIT, Other License(s), see package
Group: Productivity/Graphics/Vector Editors
Provides: xfig.3.2.3d
Requires: transfig netpbm ghostscript-fonts-std
Autoreqprov: on
Version: 3.2.4
Release: 107
Summary: Facility for Interactive Generation of Figures under the X Window System
Url: http://www.xfig.org/
Source: xfig.%{version}.tar.bz2
Source1: font-test.fig
Source2: browser
Source3: xfig.sh
Source4: xfig.desktop
Patch0: xfig.%{version}.dif
Patch1: xfig.%{version}-urw-fonts.dif
Patch2: xfig.3.2.3d-xim.dif
Patch3: xfig.3.2.3d-international-std-fonts.dif
Patch4: xfig.3.2.3d-xcolor.dif
Patch5: xfig-%{version}-mkstemp.dif
Patch6: xfig.%{version}-null.dif
Patch7: xfig.%{version}-quiet.dif
Patch8: xfig.%{version}-gcc4.dif
Patch9: xfig.%{version}-locale.dif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{expand: %%global _exec_prefix %(type -p pkg-config &>/dev/null && pkg-config --variable prefix x11 || echo /usr/X11R6)}
%if "%_exec_prefix" == "/usr/X11R6"
%global _mandir %{_exec_prefix}/man
%define _x11data %{_exec_prefix}/lib/X11
%define _data $(LIBDIR)
%define _appdefdir %{_x11data}/app-defaults
%else
%define _x11data %{_datadir}/X11
%define _data $(SHAREDIR)
%define _appdefdir %{_x11data}/app-defaults
%endif
%description
Xfig is a menu-driven tool that allows the user to draw and manipulate
objects interactively in an X Window System window. The resulting
pictures can be saved, printed on PostScript printers, or converted to
a variety of other formats (to allow inclusion in LaTeX documents, for
example).
Documentation: /usr/share/doc/packages/xfig & man xfig
Examples: /usr/share/doc/packages/xfig/TheExamples
Authors:
--------
Anthony Dekker <dekker@ACM.org>
Brian V. Smith <bvsmith@lbl.gov>
Jim Daley <jdaley@cix.compulink.co.uk>
Ross Martin <martin@trcsun3.eas.asu.edu>
Uwe Bonnes <bon@lte.e-technik.uni-erlangen.de>
%prep
%setup -q -n xfig.%{version}
%patch0 -p0
%patch1 -p0 -b .urw-fonts
%patch2 -p1 -b .xim
%patch3 -p1 -b .international-std-fonts
%patch4 -p0 -b .xcolor
%patch5 -p1 -b .security
%patch6 -p0 -b .null
%patch7 -p0 -b .quiet
%patch8 -p0 -b .gcc4
%patch9 -p0 -b .locale
cp $RPM_SOURCE_DIR/font-test.fig .
xmkmf -a -D_DATA='%{_data}'
%build
make CCOPTIONS="-fno-strict-aliasing $RPM_OPT_FLAGS -w"
%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_x11data}/xfig
mkdir -p %{buildroot}%{_appdefdir}
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}/Libraries/Examples
rm -rf %{buildroot}%{_defaultdocdir}/%{name}/Examples
ln -sf Libraries/Examples \
%{buildroot}%{_defaultdocdir}/%{name}/TheExamples
ln -sf %{_defaultdocdir}/%{name}/Libraries \
%{buildroot}%{_x11data}/xfig/Libraries
ln -sf %{_defaultdocdir}/%{name}/html \
%{buildroot}%{_x11data}/xfig/
ln -sf %{_defaultdocdir}/%{name}/xfig.html \
%{buildroot}%{_x11data}/xfig/
ln -sf %{_defaultdocdir}/%{name}/xfig-howto.pdf \
%{buildroot}%{_x11data}/xfig/
install -m 0755 %{SOURCE2} %{buildroot}%{_x11data}/xfig/
make DESTDIR=%{buildroot} install
make DESTDIR=%{buildroot} install.man
mkdir -p %{buildroot}/%{_docdir}/%{name}
cp -pr README FIGAPPS Libraries font-test.fig %{buildroot}/%{_docdir}/%{name}
cp -pr Doc/FORMAT* Doc/TODO Doc/html Doc/*.pdf Doc/*.html %{buildroot}/%{_docdir}/%{name}
find %{buildroot}%{_defaultdocdir}/%{name}/ -name '*.bak' | xargs -r rm
find %{buildroot}%{_defaultdocdir}/%{name}/ -type f -print0 | xargs -0 chmod 644
mkdir -p %{buildroot}%{_datadir}/pixmaps
cp -p %{name}.png %{buildroot}%{_datadir}/pixmaps/
mv %{buildroot}%{_bindir}/xfig %{buildroot}%{_bindir}/xfig.bin
sed 's|@@BINDIR@@|%{_bindir}|' < %{SOURCE3} > %{buildroot}%{_bindir}/xfig
chmod 0755 %{SOURCE3} %{buildroot}%{_bindir}/xfig
install -d %{buildroot}/usr/share/applications
sed 's|@@BINDIR@@|%{_bindir}|' < %{SOURCE4} > %{buildroot}/usr/share/applications/xfig.desktop
chmod 0644 %{buildroot}/usr/share/applications/xfig.desktop
%suse_update_desktop_file xfig VectorGraphics &> /dev/null
%files
%defattr(-,root,root,755)
%doc %{_docdir}/%{name}
%{_datadir}/applications/xfig.desktop
%{_datadir}/pixmaps/xfig.png
%{_x11data}/xfig
%{_bindir}/xfig*
%config %{_appdefdir}/Fig
%config %{_appdefdir}/Fig-color
%doc %{_mandir}/man1/xfig.1x.gz
%changelog -n xfig
* Thu Nov 16 2006 - werner@suse.de
- Set LC_NUMERIC to POSIX before print or export data (bug #213942)
* Tue Nov 07 2006 - ro@suse.de
- fix docu permissions
* Mon Jul 31 2006 - werner@suse.de
- Use Imake defines for LIBDIR/SHAREDIR switch
* Fri Jul 28 2006 - werner@suse.de
- Make it build with X11R7
* Wed Feb 15 2006 - stbinner@suse.de
- add GenericName to .desktop file
* Wed Jan 25 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
* Thu Oct 06 2005 - werner@suse.de
- Make URW fonts an option, use Adobe as fallback
* Wed Aug 31 2005 - werner@suse.de
- Fix single byte buffer overflow due pedantic gcc4 (bug #114344)
* Mon Aug 29 2005 - ro@suse.de
- use own desktop file with icon (#113672)
* Tue Mar 01 2005 - meissner@suse.de
- fixed font struct definitions to be after struct
definition for gcc4.
- -Wno-all is actually -w.
* Thu Aug 26 2004 - werner@suse.de
- Allow arguments in the wrapper script for xfig
* Wed Aug 25 2004 - werner@suse.de
- Avoid nasty warnings about not found actions
- Use wrapper script to avoid UTF-8 for the program its self
* Fri Aug 13 2004 - werner@suse.de
- Filelist: Add pixmap of xfig (#43698)
- Package docu: correct dir name in PDB (#43698)
* Fri May 28 2004 - adrian@suse.de
- fix invalid Categories (#41338)
* Tue Apr 06 2004 - werner@suse.de
- Add application desktop file for xfig (bug #38507 ???)
* Mon Mar 22 2004 - werner@suse.de
- Fix NULL pointer access (bug #36650)
* Thu Mar 18 2004 - werner@suse.de
- Remove .bak's from file list (bug #36311)
* Thu Mar 11 2004 - werner@suse.de
- Add browser script for detection of varisou web browsers (#35669)
- Add security fix for temporary files
- Fix doc location
- Avoid extrem long build logs
* Tue Feb 03 2004 - werner@suse.de
- Update to 3.2.4
* Sat Jan 10 2004 - adrian@suse.de
- build as user
* Tue Jul 22 2003 - hare@suse.de
- Fixed function declaration.
* Fri Jun 13 2003 - kukuk@suse.de
- Add workaround for brp-symlink script
* Thu Jun 12 2003 - kukuk@suse.de
- Use BuildRoot
- Fix filelist
* Fri May 09 2003 - mfabian@suse.de
- fix Bugzilla #26734: extend the fontsets in
xfig-international-std-fonts.dif to always match something to
avoid warnings "Missing charsets in String to FontSet conversion"
even if only few fonts are installed.
* Thu May 08 2003 - mfabian@suse.de
- adapt font names in xfig.3.2.3d-urw-fonts.dif to the names
as they are auto generated by mkfontscale since SuSE Linux 8.2.
- don't print warnings concerning input styles when compose is
used, input styles don't matter for compose.
* Mon Mar 18 2002 - mfabian@suse.de
- fix bug #15077, don't exit when XSetLocaleModifiers("") fails,
this would make it impossible to use the '-international' option
unless some input server is running, which is nonsense for most
non-Asian languages e.g. for Czech.
- enable '-international' automatically when
NULL == strcasestr(nl_langinfo(CODESET),"ISO-8859-1")
(i.e. enable it automatically for Czech as well).
- use better fonts for on screen display of Times-Roman and
Times-Bold when '-international' is used.
* Mon Mar 18 2002 - werner@suse.de
- Fix bug # 15076: add link /usr/X11R6/lib/X11/xfig/html/
pointing to /usr/share/doc/packages/xfig/html/,
add link /usr/X11R6/lib/X11/xfig/xfig.html pointing to
/usr/share/doc/packages/xfig/xfig.html, add link
/usr/X11R6/lib/X11/xfig/xfig-howto.pdf pointing to
/usr/share/doc/packages/xfig/xfig-howto.pdf
* Thu Mar 07 2002 - werner@suse.de
- Fix bug # 14588: add link /usr/X11R6/lib/X11/xfig/Libraries
pointing to /usr/share/doc/packages/xfig/Examples/Libraries
* Fri Feb 22 2002 - mfabian@suse.de
- use the URW fonts for display on X11 instead of bitmap fonts.
Using the URW fonts for display on X11 *and* for printing with
Ghostscript has the advantage that printout looks much more
similar to the preview on X11. Much more WYSIWYG now.
On top of that, the bitmap fonts could not be scaled anymore
because we now have ":unscaled" added to every directory in
the font path which contains only bitmap fonts. Therefore
changing the font size in xfig ceased to work on X11, it worked
only in the PostScript output. Because of this the X11 display
was very different from the PostScript output.
- add font-test.fig as a sample file to test the correct display
of the URW fonts.
- add xfig.3.2.3d-xim.dif to fix XIM for Japanese and Korean.
(didn't work at all previously because a call to
XSetLocaleModifiers() was missing)
- switch on the '-international' option for all locales using
codesets different from 'ISO-8859-*' on by default.
- remove Korean app-defaults. The only reason for it's existence
was to set 'Fig.international: true' apart from that it was
identical to the standard app-defaults file. And because of
some bug (which I still don't understand) it wasn't read anyway
and therefore achieved nothing.
* Fri Feb 01 2002 - ro@suse.de
- changed neededforbuild <libpng> to <libpng-devel-packages>
* Tue Dec 11 2001 - werner@suse.de
- Add forgotten examples
- Add forgotten docs
* Mon Dec 10 2001 - werner@suse.de
- Update to version 3.2.3d
* Tue May 08 2001 - mfabian@suse.de
- bzip2 sources
* Thu Jan 25 2001 - violiet@suse.de
- added Korean resource.
* Thu Dec 14 2000 - werner@suse.de
- Fixed the improve of the object searching at higher zooms (bug#4672)
* Tue Oct 10 2000 - werner@suse.de
- Move XtSetLanguageProc after XtAppInitialize because otherwise
LC_NUMERIC will be overwritten by LANG.
* Fri Sep 15 2000 - werner@suse.de
- Update to 3.2.3c
* include bug fix for f_read.c
* Enable international support at compile time but disable
it at run time (works only for Japanese and Korean).
User could use -international
* Mention -international in the manual and html page
* Fri Jun 30 2000 - werner@suse.de
- Workaround for un-initialized label in sme_bsb class
* Wed May 31 2000 - werner@suse.de
- use %%{_defaultdocdir}
* Mon Mar 27 2000 - werner@suse.de
- Avoid sparc nasties
* Fri Mar 24 2000 - werner@suse.de
- Update to new version 3.2.3a
- Add patch for special jpeg version
- Change some minor shadow colorings
* Mon Sep 13 1999 - bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Wed Apr 07 1999 - werner@suse.de
- Use the macro __need___va_list instead of moving varargs.h
- Integrate the cut+paste patch
- Use colored XPM icon
* Fri Mar 05 1999 - ro@suse.de
- move varargs topward to make it compile
* Wed Dec 09 1998 - max@suse.de
- added whole /usr/X11R6/lib/X11/xfig path to the file list, to get
online documentation and cliparts into the rpm package.
* Fri Oct 30 1998 - ro@suse.de
- update to 3.2.2
* Thu Sep 17 1998 - ro@suse.de
- don't redeclare sys_errlist for glibc
* Mon Oct 20 1997 - ro@suse.de
- ready for autobuild
* Tue May 27 1997 - florian@suse.de
- update to version 3.2
- update to version 3.2.0-beta3
- add more docu and examples
* Thu Jan 02 1997 - florian@suse.de
- changed to use cm as default metric and not inches