Accepting request 33375 from Publishing

Copy from Publishing/gv based on submit request 33375 from user WernerFink

OBS-URL: https://build.opensuse.org/request/show/33375
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gv?expand=0&rev=9
This commit is contained in:
OBS User autobuild 2010-02-25 01:21:49 +00:00 committed by Git OBS Bridge
parent 4f4ac0a1ce
commit 6fbb540bed
11 changed files with 192 additions and 5423 deletions

View File

@ -1,103 +0,0 @@
--- configure.ac
+++ configure.ac 2008-03-27 14:41:36.332982541 +0100
@@ -49,6 +49,25 @@ dnl Search for libraries
AC_CHECK_LIB(m, sqrt)
AC_CHECK_LIB(fl, yywrap)
+#
+# Check for zlib and libbz2 libraries to use this together
+# with SuSE's libzio to open compressed info files.
+#
+AC_CHECK_HEADER(zlib.h,[
+ for lib in z gz
+ do
+ AC_CHECK_LIB($lib, gzopen, [LIBS="$LIBS -l$lib" ; break])
+ done])
+AC_CHECK_HEADER(bzlib.h,[
+ for lib in bz2 bzip2
+ do
+ AC_CHECK_LIB($lib, BZ2_bzopen, [LIBS="$LIBS -l$lib" ; break])
+ done])
+AC_CHECK_HEADER(zio.h,[
+ AC_CHECK_LIB(zio, fzopen, [LIBS="$LIBS -lzio" ; AC_DEFINE(HAVE_ZIO)])
+ ])
+
+
AC_PATH_XTRA()
AC_CHECK_LIB(X11, XOpenDisplay, , , $X_LIBS)
AC_CHECK_LIB(ICE, main, , , $X_LIBS)
@@ -229,4 +248,4 @@ AM_CONDITIONAL(USE_MEMDEBUG_CODE, test x
dnl Generate output files
-AC_OUTPUT(Makefile doc/version.texi lib/Makefile src/Makefile doc/Makefile)
\ No newline at end of file
+AC_OUTPUT(Makefile doc/version.texi lib/Makefile src/Makefile doc/Makefile)
--- src/ac_config.h.in
+++ src/ac_config.h.in 2008-03-27 14:43:32.755968935 +0100
@@ -142,3 +142,6 @@
/* Define to rpl_ if the getopt replacement functions and variables should be
used. */
#undef __GETOPT_PREFIX
+
+/* Define to 1 if you have libzio for opening compressed info files */
+#undef HAVE_ZIO
--- src/ps.c
+++ src/ps.c 2008-03-27 15:33:19.813097964 +0100
@@ -65,8 +65,15 @@
#include <stdio.h>
#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
#include <string.h>
+#include <ac_config.h>
+
+#ifdef HAVE_ZIO
+# include <zio.h>
+#endif
#ifndef SEEK_SET
#define SEEK_SET 0
@@ -93,7 +100,7 @@ extern Media *gv_medias;
#define memset(a,b,c) bzero(a,c)
#endif
-extern int sec_scanf(const char *, const char *, ...);
+extern int sec_sscanf(const char *, const char *, ...);
/* We use this helper function for providing proper */
/* case and colon :-) insensitive DSC matching */
@@ -388,6 +395,7 @@ psscan(fileP,filename,filename_raw,filen
cmd_uncompress=NULL;
}
}
+#ifndef HAVE_ZIO
if (cmd_uncompress) {
struct document *retval = NULL;
FILE *tmpfile = (FILE*)NULL;
@@ -441,6 +449,23 @@ unc_ok:
*filename_uncP = (char*)GV_XtNewString(filename_unc);
goto unc_ok;
}
+#else
+ if (cmd_uncompress) {
+ FILE *zfile = fzopen(filename, "r");
+ INFMESSAGE(is compressed)
+ if (!zfile) {
+ char s[512];
+ sprintf(s,"Uncompressing of\n%s\nfailed.",filename);
+ NotePopupShowMessage(s);
+ ENDMESSAGE(psscan)
+ return(NULL);
+ }
+ fclose(*fileP);
+ *fileP = zfile;
+ cmd_uncompress = NULL;
+ *filename_uncP = NULL;
+ }
+#endif
respect_eof = (scanstyle & SCANSTYLE_IGNORE_EOF) ? 0 : 1;
ignore_dsc = (scanstyle & SCANSTYLE_IGNORE_DSC) ? 1 : 0;

File diff suppressed because it is too large Load Diff

View File

@ -1,321 +0,0 @@
--- src/FileSel.c
+++ src/FileSel.c 2008-03-27 17:10:04.806005718 +0100
@@ -40,6 +40,7 @@
#include <stdlib.h> /* for malloc etc.*/
#include <ctype.h> /* for toupper */
#include <stdio.h>
+#include <stdint.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -1045,9 +1046,9 @@ static void FS_listAction(w, event, para
if (!scrolling) {
int entry = VlistEntryOfPosition(list,(int)event->xbutton.y);
if (entry >=0 && entry < VlistEntries(list)) {
- if (list == FS_CURLIST) CurDirSelectionProc(list,NULL,(XtPointer)entry);
- else if (list == FS_SUBLIST) SubDirSelectionProc(list,NULL,(XtPointer)entry);
- else if (list == FS_TOPLIST) TopDirSelectionProc(list,NULL,(XtPointer)entry);
+ if (list == FS_CURLIST) CurDirSelectionProc(list,NULL,(XtPointer)(intptr_t)entry);
+ else if (list == FS_SUBLIST) SubDirSelectionProc(list,NULL,(XtPointer)(intptr_t)entry);
+ else if (list == FS_TOPLIST) TopDirSelectionProc(list,NULL,(XtPointer)(intptr_t)entry);
}
}
}
@@ -1660,7 +1661,7 @@ TopDirSelectionProc(w, client_data, call
XtPointer client_data, call_data;
{
FS_WIDGET XtParent(XtParent(XtParent(XtParent(w))));
- int item = (int) call_data;
+ intptr_t item = (intptr_t) call_data;
char newpath[FS_MAXNAMLEN];
BEGINMESSAGE(TopDirSelectionProc)
@@ -1706,7 +1707,7 @@ CurDirSelectionProc(w, client_data, call
{
FS_WIDGET XtParent(XtParent(XtParent(XtParent(w))));
char name[10];
- int item = (int) call_data;
+ intptr_t item = (intptr_t) call_data;
BEGINMESSAGE(CurDirSelectionProc)
@@ -1748,7 +1749,7 @@ SubDirSelectionProc(w, client_data, call
Widget w;
XtPointer client_data, call_data;
{
- int item = (int)call_data;
+ intptr_t item = (intptr_t)call_data;
FS_WIDGET XtParent(XtParent(XtParent(XtParent(w))));
char newpath[FS_MAXNAMLEN];
@@ -1845,14 +1846,14 @@ SMESSAGE(XtName(p))
{
Widget clip=NULL,aaa=NULL,scroll=NULL;
FS_WIDGET p;
- int style = (int)client_data;
+ intptr_t style = (intptr_t)client_data;
if (s[0] == 'c') { clip = FS_CURCLIP; aaa = FS_CURAAA; scroll = FS_CURSCROLL; }
else if (s[0] == 's') { clip = FS_SUBCLIP; aaa = FS_SUBAAA; scroll = FS_SUBSCROLL; }
else style=0;
if (style == SCROLL_SCROLLPROC || style == SCROLL_JUMPPROC) {
int x,y;
x = (int) aaa->core.x;
- if (((int)client_data)==1) y = (int) aaa->core.y - (int)call_data;
+ if (((intptr_t)client_data)==1) y = (int) aaa->core.y - (intptr_t)call_data;
else y = (int)(-*((float*)call_data) * aaa->core.height);
ClipWidgetSetCoordinates(clip, x, y);
} else if (style == SCROLL_CLIPREPORT) {
--- src/actions.c
+++ src/actions.c 2004-04-30 16:35:07.000000000 +0200
@@ -40,6 +40,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
+#include <stdint.h>
#include "paths.h"
#include INC_X11(Intrinsic.h)
@@ -897,7 +898,7 @@ action_setPageMark(w, event, params, num
else if (!strcmp(params[1],mark)) spm=spm|SPM_MARK;
else spm=spm|SPM_UNMARK;
- cb_setPageMark((Widget)NULL,(XtPointer)spm,NULL);
+ cb_setPageMark((Widget)NULL,(XtPointer)(intptr_t)spm,NULL);
ENDMESSAGE(action_setPageMark)
}
@@ -945,7 +946,7 @@ action_setScale(w, event, params, num_pa
if (i<0) i = (-i)|SCALE_MIN;
i |= SCALE_REL;
}
- cb_setScale(w, (XtPointer)i, NULL);
+ cb_setScale(w, (XtPointer)(intptr_t)i, NULL);
ENDMESSAGE(action_setScale)
}
@@ -971,7 +972,7 @@ action_setOrientation(w, event, params,
return;
}
o = doc_convStringToDocOrient(params[0]);
- if (o != O_UNSPECIFIED) cb_setOrientation(w, (XtPointer)o, NULL);
+ if (o != O_UNSPECIFIED) cb_setOrientation(w, (XtPointer)(intptr_t)o, NULL);
ENDMESSAGE(action_setOrientation)
}
@@ -999,7 +1000,7 @@ action_setPagemedia(w, event, params, nu
}
m = doc_convStringToPageMedia(doc,params[0]);
- if (m!= MEDIA_ID_INVALID) cb_setPagemedia(w, (XtPointer)m, NULL);
+ if (m!= MEDIA_ID_INVALID) cb_setPagemedia(w, (XtPointer)(intptr_t)m, NULL);
ENDMESSAGE(action_setPagemedia)
}
--- src/callbacks.c
+++ src/callbacks.c 2008-03-27 17:13:48.466712393 +0100
@@ -40,6 +40,7 @@
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
+#include <stdint.h>
#ifndef BUFSIZ
# define BUFSIZ 1024
@@ -152,9 +153,9 @@ cb_newtocScrollbar(w, client_data, call_
BEGINMESSAGE(cb_newtocScrollbar)
x = (int) newtocControl->core.x;
- if (((int)client_data)==1) {
- int dy = (int)call_data;
- y = (int) newtocControl->core.y - dy;
+ if (((intptr_t)client_data)==1) {
+ intptr_t dy = (intptr_t)call_data;
+ y = (int)((intptr_t) newtocControl->core.y - dy);
} else {
float *percent = (float *) call_data;
y = (int)(-*percent * newtocControl->core.height);
@@ -262,7 +263,7 @@ void cb_useBackingPixmap(w, client_data,
Widget w;
XtPointer client_data, call_data;
{
- int i = (int)client_data;
+ intptr_t i = (intptr_t)client_data;
BEGINMESSAGE(cb_useBackingPixmap)
if (i&1) {
@@ -366,7 +367,7 @@ cb_checkFile(w, client_data, call_data)
int changed;
BEGINMESSAGE(cb_checkFile)
- changed = check_file(((int)client_data));
+ changed = check_file(((intptr_t)client_data));
if (changed==1)
{
cb_stopInterpreter(page,NULL,NULL);
@@ -392,7 +393,7 @@ static void watch_file (client_data, idp
BEGINMESSAGE(watch_file)
/* notification after timeout */
- if ((int)client_data && app_res.watch_file) {
+ if ((intptr_t)client_data && app_res.watch_file) {
if (!file_fileIsNotUseful(gv_filename)) {
int error;
String s;
@@ -509,7 +510,7 @@ cb_print(w, client_data, call_data)
return;
}
- gv_print_mode = (int)client_data;
+ gv_print_mode = (intptr_t)client_data;
pagelist=get_pagelist(&gv_print_mode);
if (pagelist) GV_XtFree(pagelist);
if (gv_print_mode==PAGE_MODE_INVALID) {
@@ -627,7 +628,7 @@ cb_save(w, client_data, call_data)
BEGINMESSAGE(cb_save)
- gv_save_mode = (int)client_data;
+ gv_save_mode = (intptr_t)client_data;
pagelist=get_pagelist(&gv_save_mode);
if (pagelist) GV_XtFree(pagelist);
if (gv_save_mode==PAGE_MODE_INVALID) {
@@ -708,10 +709,10 @@ cb_doSave(w, client_data, call_data)
String name;
String error=NULL;
char *pagelist;
- int type;
+ intptr_t type;
BEGINMESSAGE(cb_doSave)
- if (client_data) type = (int)client_data;
+ if (client_data) type = (intptr_t)client_data;
else type = FILE_TYPE_PS;
name = XawFileSelectionGetPath(FileSel);
@@ -932,7 +933,7 @@ cb_positionPage(w, client_data, call_dat
cow = (int)control->core.width;
coh = (int)control->core.height;
- if ((int)client_data) center = True;
+ if ((intptr_t)client_data) center = True;
if (!center) have_pagepos=misc_restorePagePosition(&px,&py);
if (app_res.auto_center == True) center = True;
@@ -973,7 +974,7 @@ cb_setPageMark(w, client_data, call_data
Widget w;
XtPointer client_data, call_data;
{
- int r=(int)client_data;
+ intptr_t r = (intptr_t)client_data;
int entry=XawVlistInvalid,change=XawVlistInvalid;
BEGINMESSAGE(cb_setPageMark)
@@ -1026,10 +1027,10 @@ cb_setScale(w, client_data, call_data)
Widget w;
XtPointer client_data, call_data;
{
- int i=(int)client_data;
+ intptr_t i=(intptr_t)client_data;
BEGINMESSAGE(cb_setScale)
- i = scale_checkScaleNum(gv_scales,i);
+ i = scale_checkScaleNum(gv_scales, (int)i);
if (i>=0) {
if (i&SCALE_BAS) gv_scale_base = i&SCALE_VAL;
else gv_scale = i&SCALE_VAL;
@@ -1051,7 +1052,7 @@ cb_setOrientation(w, client_data, call_d
Widget w;
XtPointer client_data, call_data;
{
- int o = (int) client_data;
+ intptr_t o = (intptr_t) client_data;
int changed = 1;
BEGINMESSAGE(cb_setOrientation)
@@ -1097,7 +1098,7 @@ cb_setPagemedia(w, client_data, call_dat
Widget w;
XtPointer client_data, call_data;
{
- int media = (int)client_data;
+ intptr_t media = (intptr_t)client_data;
int media_bbox = doc ? doc->nummedia : 0;
BEGINMESSAGE(cb_setPagemedia)
--- src/main.c
+++ src/main.c 2004-04-30 16:36:16.000000000 +0200
@@ -72,6 +72,8 @@
#include <sys/stat.h>
#include <unistd.h>
+#include <stdint.h>
+
#include "types.h"
#include "actions.h"
#include "callbacks.h"
@@ -1349,8 +1351,8 @@ void main_createScaleMenu()
have_line=True;
}
scaleEntry[i] = XtCreateManagedWidget(gv_scales[i]->name, smeBSBObjectClass,scaleMenu,args,n);
- if (gv_scales[i]->is_base) XtAddCallback(scaleEntry[i], XtNcallback,cb_setScale,(XtPointer)(i|SCALE_BAS));
- else XtAddCallback(scaleEntry[i], XtNcallback,cb_setScale,(XtPointer)(i|SCALE_ABS));
+ if (gv_scales[i]->is_base) XtAddCallback(scaleEntry[i], XtNcallback,cb_setScale,(XtPointer)(intptr_t)(i|SCALE_BAS));
+ else XtAddCallback(scaleEntry[i], XtNcallback,cb_setScale,(XtPointer)(intptr_t)(i|SCALE_ABS));
}
ENDMESSAGE(main_createScaleMenu)
}
--- src/misc.c
+++ src/misc.c 2004-04-30 16:35:07.000000000 +0200
@@ -65,6 +65,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
+#include <stdint.h>
#ifndef SEEK_SET
# define SEEK_SET 0
@@ -1555,7 +1556,7 @@ void misc_buildPagemediaMenu()
if (doc && doc->nummedia) {
for (i = 0; i < doc->nummedia; i++) {
pagemediaEntry[i] = XtCreateManagedWidget(doc->media[i].name,smeBSBObjectClass, pagemediaMenu,NULL,(Cardinal)0);
- XtAddCallback(pagemediaEntry[i], XtNcallback,cb_setPagemedia, (XtPointer)i);
+ XtAddCallback(pagemediaEntry[i], XtNcallback,cb_setPagemedia, (XtPointer)(intptr_t)i);
}
w = XtCreateManagedWidget("line", smeLineObjectClass, pagemediaMenu,NULL,(Cardinal)0);
}
@@ -1565,7 +1566,7 @@ void misc_buildPagemediaMenu()
if (!(gv_medias[i]->used)) continue;
pagemediaEntry[i+num_doc_media] =
XtCreateManagedWidget(gv_medias[i]->name,smeBSBObjectClass, pagemediaMenu,NULL,(Cardinal)0);
- XtAddCallback(pagemediaEntry[i+num_doc_media], XtNcallback,cb_setPagemedia, (XtPointer)(i+num_doc_media));
+ XtAddCallback(pagemediaEntry[i+num_doc_media], XtNcallback,cb_setPagemedia, (XtPointer)(intptr_t)(i+num_doc_media));
}
{
Boolean b = (doc_mediaIsOk(doc,current_page,num_doc_media) ? True : False);
--- src/options_gv.c
+++ src/options_gv.c 2004-04-30 16:35:07.000000000 +0200
@@ -40,6 +40,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
+#include <stdint.h>
#include "paths.h"
#include INC_X11(Intrinsic.h)
@@ -252,7 +253,7 @@ static void options_gv_cb_apply(w, clien
k = gv_pagemedia;
gv_pagemedia_auto = 0;
i = doc_convStringToPageMedia(doc,app_res.default_pagemedia);
- cb_setPagemedia(NULL,(XtPointer)i,(XtPointer)1);
+ cb_setPagemedia(NULL,(XtPointer)(intptr_t)i,(XtPointer)(intptr_t)1);
if ((j != gv_pagemedia_auto) || (k != gv_pagemedia)) redisplay = True;
}
s_media = True;
@@ -277,7 +278,7 @@ static void options_gv_cb_apply(w, clien
j = gv_orientation_auto;
k = gv_orientation;
gv_orientation_auto = 0;
- cb_setOrientation(NULL,(XtPointer)i,(XtPointer)1);
+ cb_setOrientation(NULL,(XtPointer)(intptr_t)i,(XtPointer)(intptr_t)1);
if ((j != gv_orientation_auto) || (k != gv_orientation)) redisplay = True;
}
s_orient = True;

View File

@ -1,940 +0,0 @@
--- src/Makefile.am
+++ src/Makefile.am 2008-03-27 14:10:24.644359171 +0100
@@ -123,6 +123,7 @@ gv_SOURCES = Aaa.c \
save.h \
scale.c \
scale.h \
+ secscanf.c \
gv_signal.c \
gv_signal.h \
version.c \
--- src/Makefile.in
+++ src/Makefile.in 2008-03-27 14:18:31.898867989 +0100
@@ -79,13 +79,13 @@ am__gv_SOURCES_DIST = Aaa.c Aaa_bison.c
options_gs.c options_gs.h options_gv.c options_gv.h \
options_setup.c options_setup.h paths.h process.c process.h \
popup.c popup.h ps.c ps.h resource.c resource.h save.c save.h \
- scale.c scale.h gv_signal.c gv_signal.h version.c version.h \
- versionp.h widgets_misc.c widgets_misc.h zoom.c zoom.h stdc.h \
- Aaa_intern.h Aaa.h AaaP.h d_memdebug.h d_aaa_xtmem.h \
- d_fs_xtmem.h d_gv_mem.h d_gv_xtmem.h d_proc_xtmem.h d_ps_mem.h \
- d_ps_xtmem.h gv_message.h types.h Scrollbar.c Scrollbar.h \
- ScrollbarP.h setenv.c setenv.h getenv.c d_mem.c d_mem.h \
- d_xtmem.c d_xtmem.h
+ scale.c scale.h secscanf.c gv_signal.c gv_signal.h version.c \
+ version.h versionp.h widgets_misc.c widgets_misc.h zoom.c \
+ zoom.h stdc.h Aaa_intern.h Aaa.h AaaP.h d_memdebug.h \
+ d_aaa_xtmem.h d_fs_xtmem.h d_gv_mem.h d_gv_xtmem.h \
+ d_proc_xtmem.h d_ps_mem.h d_ps_xtmem.h gv_message.h types.h \
+ Scrollbar.c Scrollbar.h ScrollbarP.h setenv.c setenv.h \
+ getenv.c d_mem.c d_mem.h d_xtmem.c d_xtmem.h
@USE_SCROLLBAR_CODE_TRUE@am__objects_1 = Scrollbar.$(OBJEXT)
@USE_SETENV_CODE_TRUE@am__objects_2 = setenv.$(OBJEXT) \
@USE_SETENV_CODE_TRUE@ getenv.$(OBJEXT)
@@ -103,9 +103,9 @@ am_gv_OBJECTS = Aaa.$(OBJEXT) Aaa_bison.
options_fs.$(OBJEXT) options_gs.$(OBJEXT) options_gv.$(OBJEXT) \
options_setup.$(OBJEXT) process.$(OBJEXT) popup.$(OBJEXT) \
ps.$(OBJEXT) resource.$(OBJEXT) save.$(OBJEXT) scale.$(OBJEXT) \
- gv_signal.$(OBJEXT) version.$(OBJEXT) widgets_misc.$(OBJEXT) \
- zoom.$(OBJEXT) $(am__objects_1) $(am__objects_2) \
- $(am__objects_3)
+ secscanf.$(OBJEXT) gv_signal.$(OBJEXT) version.$(OBJEXT) \
+ widgets_misc.$(OBJEXT) zoom.$(OBJEXT) $(am__objects_1) \
+ $(am__objects_2) $(am__objects_3)
gv_OBJECTS = $(am_gv_OBJECTS)
gv_LDADD = $(LDADD)
gv_DEPENDENCIES = $(top_srcdir)/lib/libgnu.a
@@ -261,8 +261,8 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-dist_pkglib_DATA = gv_system.ad gv_user.ad gv_class.ad gv_spartan.dat gv_user_res.dat gv_copyright.dat gv_widgetless.dat
-appdefaultsdir = /etc/X11/app-defaults
+dist_pkglib_DATA = gv_system.ad gv_user.ad gv_class.ad gv_spartan.dat gv_user_res.dat gv_copyright.dat
+appdefaultsdir = $(pkglibdir)
appdefaults_DATA = GV
EXTRA_DIST = ad2c gv_font_res.dat gv_layout_res.dat gv_misc_res.dat Aaa_bison.yacc \
gv_current.xbm gv_doc.xbm gv_empty.xbm gv_even.xbm gv_icon.xbm gv_odd.xbm \
@@ -303,9 +303,9 @@ gv_SOURCES = Aaa.c Aaa_bison.c Aaa_bison
options_gs.c options_gs.h options_gv.c options_gv.h \
options_setup.c options_setup.h paths.h process.c process.h \
popup.c popup.h ps.c ps.h resource.c resource.h save.c save.h \
- scale.c scale.h gv_signal.c gv_signal.h version.c version.h \
- versionp.h widgets_misc.c widgets_misc.h zoom.c zoom.h \
- message.h stdc.h Aaa_intern.h Aaa.h AaaP.h d_memdebug.h \
+ scale.c scale.h secscanf.c gv_signal.c gv_signal.h version.c \
+ version.h versionp.h widgets_misc.c widgets_misc.h zoom.c \
+ zoom.h message.h stdc.h Aaa_intern.h Aaa.h AaaP.h d_memdebug.h \
d_aaa_xtmem.h d_fs_xtmem.h d_gv_mem.h d_gv_xtmem.h \
d_proc_xtmem.h d_ps_mem.h d_ps_xtmem.h gv_message.h types.h \
$(am__append_1) $(am__append_2) $(am__append_3)
@@ -436,6 +436,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resource.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/save.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scale.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secscanf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/widgets_misc.Po@am__quote@
@@ -746,7 +747,7 @@ $(srcdir)/gv_make_res.dat :
@echo "GV.useBackingPixmap: $(USE_BACKING_PIXMAP)" >> $(srcdir)/gv_make_res.dat
@echo "GV*dirs: Home\n\\" >> $(srcdir)/gv_make_res.dat
@echo " Tmp\n\\" >> $(srcdir)/gv_make_res.dat
- @echo " /usr/share/doc\n\\" >> $(srcdir)/gv_make_res.dat
+ @echo " /usr/doc\n\\" >> $(srcdir)/gv_make_res.dat
@echo " /usr/local/doc" >> $(srcdir)/gv_make_res.dat
@echo "GV*filter: no .*" >> $(srcdir)/gv_make_res.dat
@echo "GV*filters: None\n\\" >> $(srcdir)/gv_make_res.dat
--- src/ps.c
+++ src/ps.c 2008-03-27 14:20:04.186703895 +0100
@@ -93,6 +93,10 @@ extern Media *gv_medias;
#define memset(a,b,c) bzero(a,c)
#endif
+extern int sec_sscanf(const char *, const char *, ...);
+
+
+
/* We use this helper function for providing proper */
/* case and colon :-) insensitive DSC matching */
static int dsc_strncmp(s1, s2, n)
@@ -464,7 +468,7 @@ unc_ok:
doc = (struct document *) PS_malloc(sizeof(struct document));
CHECK_MALLOCED(doc);
memset(doc, 0, sizeof(struct document));
- sscanf(line, "%*s %256s", text);
+ sec_sscanf(line, "%*s %256s", text);
/*###jp###*/
/*doc->epsf = iscomment(text, "EPSF-");*/
doc->epsf = iscomment(text, "EPSF");
@@ -560,11 +564,11 @@ scan_ok:
} else if (doc->date == NULL && iscomment(line+2, "CreationDate:")) {
doc->date = gettextline(line+length("%%CreationDate:"));
} else if (bb_set == NONE && iscomment(line+2, "BoundingBox:")) {
- sscanf(line+length("%%BoundingBox:"), "%256s", text);
+ sec_sscanf(line+length("%%BoundingBox:"), "%256s", text);
if (strcmp(text, "(atend)") == 0) {
bb_set = ATEND;
} else {
- if (sscanf(line+length("%%BoundingBox:"), "%d %d %d %d",
+ if (sec_sscanf(line+length("%%BoundingBox:"), "%d %d %d %d",
&(doc->boundingbox[LLX]),
&(doc->boundingbox[LLY]),
&(doc->boundingbox[URX]),
@@ -572,7 +576,7 @@ scan_ok:
bb_set = 1;
else {
float fllx, flly, furx, fury;
- if (sscanf(line+length("%%BoundingBox:"), "%f %f %f %f",
+ if (sec_sscanf(line+length("%%BoundingBox:"), "%f %f %f %f",
&fllx, &flly, &furx, &fury) == 4) {
bb_set = 1;
doc->boundingbox[LLX] = fllx;
@@ -592,7 +596,7 @@ scan_ok:
}
} else if (orientation_set == NONE &&
iscomment(line+2, "Orientation:")) {
- sscanf(line+length("%%Orientation:"), "%256s", text);
+ sec_sscanf(line+length("%%Orientation:"), "%256s", text);
if (strcmp(text, "(atend)") == 0) {
orientation_set = ATEND;
} else if (strcmp(text, "Portrait") == 0) {
@@ -603,7 +607,7 @@ scan_ok:
orientation_set = 1;
}
} else if (page_order_set == NONE && iscomment(line+2, "PageOrder:")) {
- sscanf(line+length("%%PageOrder:"), "%256s", text);
+ sec_sscanf(line+length("%%PageOrder:"), "%256s", text);
if (strcmp(text, "(atend)") == 0) {
page_order_set = ATEND;
} else if (strcmp(text, "Ascend") == 0) {
@@ -617,11 +621,11 @@ scan_ok:
page_order_set = 1;
}
} else if (pages_set == NONE && iscomment(line+2, "Pages:")) {
- sscanf(line+length("%%Pages:"), "%256s", text);
+ sec_sscanf(line+length("%%Pages:"), "%256s", text);
if (strcmp(text, "(atend)") == 0) {
pages_set = ATEND;
} else {
- switch (sscanf(line+length("%%Pages:"), "%d %d",
+ switch (sec_sscanf(line+length("%%Pages:"), "%d %d",
&maxpages, &i)) {
case 2:
if (page_order_set == NONE) {
@@ -653,7 +657,7 @@ scan_ok:
doc->media[0].name = ps_gettext(line+length("%%DocumentMedia:"),
&next_char);
if (doc->media[0].name != NULL) {
- if (sscanf(next_char, "%f %f", &w, &h) == 2) {
+ if (sec_sscanf(next_char, "%f %f", &w, &h) == 2) {
doc->media[0].width = w + 0.5;
doc->media[0].height = h + 0.5;
}
@@ -674,7 +678,7 @@ scan_ok:
doc->media[doc->nummedia].name = ps_gettext(line+length("%%+"),
&next_char);
if (doc->media[doc->nummedia].name != NULL) {
- if (sscanf(next_char, "%f %f", &w, &h) == 2) {
+ if (sec_sscanf(next_char, "%f %f", &w, &h) == 2) {
doc->media[doc->nummedia].width = w + 0.5;
doc->media[doc->nummedia].height = h + 0.5;
}
@@ -837,7 +841,7 @@ scan_ok:
/* Do nothing */
} else if (doc->default_page_orientation == NONE &&
iscomment(line+2, "PageOrientation:")) {
- sscanf(line+length("%%PageOrientation:"), "%256s", text);
+ sec_sscanf(line+length("%%PageOrientation:"), "%256s", text);
if (strcmp(text, "Portrait") == 0) {
doc->default_page_orientation = PORTRAIT;
} else if (strcmp(text, "Landscape") == 0) {
@@ -856,7 +860,7 @@ scan_ok:
PS_free(cp);
} else if (page_bb_set == NONE &&
iscomment(line+2, "PageBoundingBox:")) {
- if (sscanf(line+length("%%PageBoundingBox:"), "%d %d %d %d",
+ if (sec_sscanf(line+length("%%PageBoundingBox:"), "%d %d %d %d",
&(doc->default_page_boundingbox[LLX]),
&(doc->default_page_boundingbox[LLY]),
&(doc->default_page_boundingbox[URX]),
@@ -864,7 +868,7 @@ scan_ok:
page_bb_set = 1;
else {
float fllx, flly, furx, fury;
- if (sscanf(line+length("%%PageBoundingBox:"), "%f %f %f %f",
+ if (sec_sscanf(line+length("%%PageBoundingBox:"), "%f %f %f %f",
&fllx, &flly, &furx, &fury) == 4) {
page_bb_set = 1;
doc->default_page_boundingbox[LLX] = fllx;
@@ -959,7 +963,7 @@ scan_ok:
/* Do nothing */
} else if (doc->default_page_orientation == NONE &&
iscomment(line+2, "PageOrientation:")) {
- sscanf(line+length("%%PageOrientation:"), "%256s", text);
+ sec_sscanf(line+length("%%PageOrientation:"), "%256s", text);
if (strcmp(text, "Portrait") == 0) {
doc->default_page_orientation = PORTRAIT;
} else if (strcmp(text, "Landscape") == 0) {
@@ -982,7 +986,7 @@ scan_ok:
PS_free(cp);
} else if (page_bb_set == NONE &&
iscomment(line+2, "PageBoundingBox:")) {
- if (sscanf(line+length("%%PageBoundingBox:"), "%d %d %d %d",
+ if (sec_sscanf(line+length("%%PageBoundingBox:"), "%d %d %d %d",
&(doc->default_page_boundingbox[LLX]),
&(doc->default_page_boundingbox[LLY]),
&(doc->default_page_boundingbox[URX]),
@@ -990,7 +994,7 @@ scan_ok:
page_bb_set = 1;
else {
float fllx, flly, furx, fury;
- if (sscanf(line+length("%%PageBoundingBox:"), "%f %f %f %f",
+ if (sec_sscanf(line+length("%%PageBoundingBox:"), "%f %f %f %f",
&fllx, &flly, &furx, &fury) == 4) {
page_bb_set = 1;
doc->default_page_boundingbox[LLX] = fllx;
@@ -1058,7 +1062,7 @@ newpage:
CHECK_MALLOCED(doc->pages);
}
label = ps_gettext(line+length("%%Page:"), &next_char);
- if (sscanf(next_char, "%d", &thispage) != 1) thispage = 0;
+ if (sec_sscanf(next_char, "%d", &thispage) != 1) thispage = 0;
if (nextpage == 1) {
ignore = thispage != 1;
}
@@ -1096,7 +1100,7 @@ continuepage:
/* Do nothing */
} else if (doc->pages[doc->numpages].orientation == NONE &&
iscomment(line+2, "PageOrientation:")) {
- sscanf(line+length("%%PageOrientation:"), "%256s", text);
+ sec_sscanf(line+length("%%PageOrientation:"), "%256s", text);
if (strcmp(text, "Portrait") == 0) {
doc->pages[doc->numpages].orientation = PORTRAIT;
} else if (strcmp(text, "Landscape") == 0) {
@@ -1128,11 +1132,11 @@ continuepage:
PS_free(cp);
} else if ((page_bb_set == NONE || page_bb_set == ATEND) &&
iscomment(line+2, "PageBoundingBox:")) {
- sscanf(line+length("%%PageBoundingBox:"), "%256s", text);
+ sec_sscanf(line+length("%%PageBoundingBox:"), "%256s", text);
if (strcmp(text, "(atend)") == 0) {
page_bb_set = ATEND;
} else {
- if (sscanf(line+length("%%PageBoundingBox:"), "%d %d %d %d",
+ if (sec_sscanf(line+length("%%PageBoundingBox:"), "%d %d %d %d",
&(doc->pages[doc->numpages].boundingbox[LLX]),
&(doc->pages[doc->numpages].boundingbox[LLY]),
&(doc->pages[doc->numpages].boundingbox[URX]),
@@ -1142,7 +1146,7 @@ continuepage:
}
else {
float fllx, flly, furx, fury;
- if (sscanf(line+length("%%PageBoundingBox:"),
+ if (sec_sscanf(line+length("%%PageBoundingBox:"),
"%f %f %f %f",
&fllx, &flly, &furx, &fury) == 4) {
if (page_bb_set == NONE) page_bb_set = 1;
@@ -1193,7 +1197,7 @@ continuepage:
/* Do nothing */
} else if (iscomment(line+2, "Page:")) {
PS_free(ps_gettext(line+length("%%Page:"), &next_char));
- if (sscanf(next_char, "%d", &thispage) != 1) thispage = 0;
+ if (sec_sscanf(next_char, "%d", &thispage) != 1) thispage = 0;
if (!ignore && thispage == nextpage) {
if (doc->numpages > 0) {
doc->pages[doc->numpages-1].end = position;
@@ -1220,13 +1224,13 @@ continuepage:
doc->begintrailer = position;
section_len = line_len;
} else if (bb_set == ATEND && iscomment(line+2, "BoundingBox:")) {
- if (sscanf(line+length("%%BoundingBox:"), "%d %d %d %d",
+ if (sec_sscanf(line+length("%%BoundingBox:"), "%d %d %d %d",
&(doc->boundingbox[LLX]),
&(doc->boundingbox[LLY]),
&(doc->boundingbox[URX]),
&(doc->boundingbox[URY])) != 4) {
float fllx, flly, furx, fury;
- if (sscanf(line+length("%%BoundingBox:"), "%f %f %f %f",
+ if (sec_sscanf(line+length("%%BoundingBox:"), "%f %f %f %f",
&fllx, &flly, &furx, &fury) == 4) {
doc->boundingbox[LLX] = fllx;
doc->boundingbox[LLY] = flly;
@@ -1244,14 +1248,14 @@ continuepage:
}
} else if (orientation_set == ATEND &&
iscomment(line+2, "Orientation:")) {
- sscanf(line+length("%%Orientation:"), "%256s", text);
+ sec_sscanf(line+length("%%Orientation:"), "%256s", text);
if (strcmp(text, "Portrait") == 0) {
doc->orientation = PORTRAIT;
} else if (strcmp(text, "Landscape") == 0) {
doc->orientation = LANDSCAPE;
}
} else if (page_order_set == ATEND && iscomment(line+2, "PageOrder:")) {
- sscanf(line+length("%%PageOrder:"), "%256s", text);
+ sec_sscanf(line+length("%%PageOrder:"), "%256s", text);
if (strcmp(text, "Ascend") == 0) {
doc->pageorder = ASCEND;
} else if (strcmp(text, "Descend") == 0) {
@@ -1260,7 +1264,7 @@ continuepage:
doc->pageorder = SPECIAL;
}
} else if (pages_set == ATEND && iscomment(line+2, "Pages:")) {
- if (sscanf(line+length("%%Pages:"), "%*u %d", &i) == 1) {
+ if (sec_sscanf(line+length("%%Pages:"), "%*u %d", &i) == 1) {
if (page_order_set == NONE) {
if (i == -1) doc->pageorder = DESCEND;
else if (i == 0) doc->pageorder = SPECIAL;
@@ -1286,7 +1290,7 @@ continuepage:
preread = 0;
if (DSCcomment(line) && iscomment(line+2, "Page:")) {
PS_free(ps_gettext(line+length("%%Page:"), &next_char));
- if (sscanf(next_char, "%d", &thispage) != 1) thispage = 0;
+ if (sec_sscanf(next_char, "%d", &thispage) != 1) thispage = 0;
if (!ignore && thispage == nextpage) {
if (doc->numpages > 0) {
doc->pages[doc->numpages-1].end = position;
@@ -1825,7 +1829,7 @@ static char * readline (fd, lineP, posit
INFMESSAGE(encountered "BeginData:")
if (FD_LINE_LEN > 100) FD_BUF[100] = '\0';
text[0] = '\0';
- if (sscanf(line+length("%%BeginData:"), "%d %*s %100s", &num, text) >= 1) {
+ if (sec_sscanf(line+length("%%BeginData:"), "%d %*s %100s", &num, text) >= 1) {
if (strcmp(text, "Lines") == 0) {
INFIMESSAGE(number of lines to skip:,num)
while (num) {
@@ -1849,7 +1853,7 @@ static char * readline (fd, lineP, posit
else if IS_BEGIN("Binary:") {
int num;
INFMESSAGE(encountered "BeginBinary:")
- if (sscanf(line+length("%%BeginBinary:"), "%d", &num) == 1) {
+ if (sec_sscanf(line+length("%%BeginBinary:"), "%d", &num) == 1) {
int read_chunk_size = LINE_CHUNK_SIZE;
INFIMESSAGE(number of chars to skip:,num)
while (num>0) {
@@ -1924,7 +1928,7 @@ pscopyuntil(fd, to, begin, end, comment)
INFMESSAGE(encountered "BeginData:")
if (FD_LINE_LEN > 100) FD_BUF[100] = '\0';
text[0] = '\0';
- if (sscanf(line+length("%%BeginData:"), "%d %*s %100s", &num, text) >= 1) {
+ if (sec_sscanf(line+length("%%BeginData:"), "%d %*s %100s", &num, text) >= 1) {
if (strcmp(text, "Lines") == 0) {
INFIMESSAGE(number of lines:,num)
while (num) {
@@ -1947,7 +1951,7 @@ pscopyuntil(fd, to, begin, end, comment)
else if IS_BEGIN("Binary:") {
int num;
INFMESSAGE(encountered "BeginBinary:")
- if (sscanf(line+length("%%BeginBinary:"), "%d", &num) == 1) {
+ if (sec_sscanf(line+length("%%BeginBinary:"), "%d", &num) == 1) {
int read_chunk_size = LINE_CHUNK_SIZE;
INFIMESSAGE(number of chars:,num)
while (num>0) {
@@ -2021,12 +2025,12 @@ pscopydoc(dest_file,src_filename,d,pagel
PS_free(comment);
continue;
}
- sscanf(comment+length("%%Pages:"), "%256s", text);
+ sec_sscanf(comment+length("%%Pages:"), "%256s", text);
if (strcmp(text, "(atend)") == 0) {
fputs(comment, dest_file);
pages_atend = True;
} else {
- switch (sscanf(comment+length("%%Pages:"), "%*d %d", &i)) {
+ switch (sec_sscanf(comment+length("%%Pages:"), "%*d %d", &i)) {
case 1:
fprintf(dest_file, "%%%%Pages: %d %d\n", pages, i);
break;
@@ -2061,7 +2065,7 @@ pscopydoc(dest_file,src_filename,d,pagel
PS_free(comment);
continue;
}
- switch (sscanf(comment+length("%%Pages:"), "%*d %d", &i)) {
+ switch (sec_sscanf(comment+length("%%Pages:"), "%*d %d", &i)) {
case 1:
fprintf(dest_file, "%%%%Pages: %d %d\n", pages, i);
break;
--- src/secscanf.c
+++ src/secscanf.c 2002-09-20 13:54:53.000000000 +0200
@@ -0,0 +1,540 @@
+/*
+ * Secure sscanf - sscanf with an additional size argument for string
+ * arguments. All format specifiers should work as in the standard
+ * scanf - except for those writing to a string buffer provided by the
+ * caller. These specifiers take an additional argument of type size_t
+ * that specifies the size of the buffer.
+ *
+ * Copyright (C) 2002, Olaf Kirch <okir@suse.de>
+ */
+
+#define _GNU_SOURCE
+
+#include <sys/param.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+
+enum {
+ CONV_ANY,
+ CONV_STR,
+ CONV_NUM,
+ CONV_INTEGER,
+ CONV_FLOAT,
+ CONV_POINTER,
+};
+
+enum {
+ SIZE_ANY,
+ SIZE_SHORT,
+ SIZE_LONG,
+ SIZE_QUAD,
+};
+
+union scan_value {
+ const char * v_string;
+ long long v_signed;
+ unsigned long long v_integer;
+ long double v_double;
+ void * v_pointer;
+};
+
+
+static int process_number(union scan_value *vp, const char **sp, char fmt);
+static int process_char_class(const char **, const char **, int);
+
+static inline int
+set_conv_type(int *type, int new_type)
+{
+ switch (*type) {
+ case CONV_ANY:
+ break;
+ case CONV_NUM:
+ if (new_type == CONV_INTEGER
+ || new_type == CONV_FLOAT
+ || new_type == CONV_POINTER)
+ break;
+ /* fallthru */
+ default:
+ if (*type != new_type)
+ return 0;
+ break;
+ }
+
+ *type = new_type;
+ return 1;
+}
+
+int
+sec_sscanf(const char *s, const char *fmt, ...)
+{
+ const char *begin = s;
+ int num_fields = 0, fmt_empty = 1;
+ va_list ap;
+
+ va_start(ap, fmt);
+ while (*fmt) {
+ union scan_value value;
+ const char *pre_space_skip,
+ *value_begin;
+ int assign = 1, allocate = 0,
+ conv_type = CONV_ANY,
+ conv_size = SIZE_ANY,
+ field_width = -1,
+ nul_terminated = 1;
+ char c;
+
+ c = *fmt++;
+ if (isspace(c)) {
+ while (isspace(*s))
+ s++;
+ continue;
+ }
+
+ fmt_empty = 0;
+ if (c != '%') {
+ if (c != *s)
+ goto stop;
+ s++;
+ continue;
+ }
+
+ /* Each % directive implicitly skips white space
+ * except for the %c case */
+ pre_space_skip = s;
+ while (isspace(*s))
+ s++;
+
+ while (1) {
+ int type = CONV_ANY, size = SIZE_ANY;
+
+ switch (*fmt) {
+ case '*':
+ assign = 0;
+ break;
+ case 'a':
+ type = CONV_STR;
+ allocate = 1;
+ break;
+ case 'h':
+ type = CONV_INTEGER;
+ size = SIZE_SHORT;
+ break;
+ case 'l':
+ type = CONV_NUM;
+ size = SIZE_LONG;
+ break;
+ case 'L':
+ case 'q':
+ type = CONV_NUM;
+ size = SIZE_QUAD;
+ break;
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ field_width = strtol(fmt, (char **) &fmt, 10);
+ fmt--;
+ break;
+ default:
+ goto flags_done;
+ }
+
+ if (!set_conv_type(&conv_type, type))
+ goto stop;
+
+ if (size != SIZE_ANY) {
+ if (size == SIZE_LONG && conv_size == SIZE_LONG)
+ conv_size = SIZE_QUAD;
+ else
+ conv_size = size;
+ }
+
+ fmt++;
+ }
+
+ flags_done:
+ value_begin = s;
+
+ switch (*fmt++) {
+ case '%':
+ if (*s == '\0')
+ goto eof;
+ if (*s != '%')
+ goto stop;
+ continue;
+ case '[':
+ value.v_string = s;
+ if (!set_conv_type(&conv_type, CONV_STR)
+ || !process_char_class(&fmt, &s, field_width))
+ goto stop;
+ break;
+ case 's':
+ value.v_string = s;
+ if (!set_conv_type(&conv_type, CONV_STR))
+ goto stop;
+ while (*s && !isspace(*s) && field_width-- != 0)
+ s++;
+ break;
+ case 'c':
+ if (!set_conv_type(&conv_type, CONV_STR))
+ goto stop;
+ value.v_string = s = value_begin = pre_space_skip;
+
+ if (field_width < 0)
+ s++;
+ else while (*s && field_width--)
+ s++;
+ nul_terminated = 0;
+ break;
+ case 'd':
+ case 'i':
+ case 'o':
+ case 'u':
+ case 'x':
+ case 'X':
+ if (!set_conv_type(&conv_type, CONV_INTEGER)
+ || !process_number(&value, &s, fmt[-1]))
+ goto stop;
+ break;
+ case 'p':
+ if (!set_conv_type(&conv_type, CONV_POINTER)
+ || !process_number(&value, &s, fmt[-1]))
+ goto stop;
+ break;
+ case 'f':
+ case 'g':
+ case 'e':
+ case 'E':
+ if (!set_conv_type(&conv_type, CONV_FLOAT)
+ || !process_number(&value, &s, fmt[-1]))
+ goto stop;
+ break;
+ case 'n':
+ if (!set_conv_type(&conv_type, CONV_INTEGER))
+ goto stop;
+ value.v_signed = (s - begin);
+ break;
+ default:
+ goto stop;
+ }
+
+ /* We've consumed what we need to consume. Now copy */
+ if (!assign)
+ continue;
+
+ /* Make sure we've consumed at least *something* */
+ if (s == value_begin)
+ goto eof;
+
+ /* Deal with a conversion flag */
+ if (conv_type == CONV_STR && allocate) {
+ value.v_pointer = strndup(value.v_string, s - value.v_string);
+ conv_type = CONV_POINTER;
+ allocate = 0;
+ }
+
+ switch (conv_type) {
+ case CONV_STR:
+ {
+ const char *string = value.v_string;
+ char *buf;
+ size_t size;
+
+ if (string == NULL)
+ goto stop;
+ buf = va_arg(ap, char *);
+ size = va_arg(ap, size_t) - nul_terminated;
+ if (size > s - string)
+ size = s - string;
+ strncpy(buf, string, size);
+ if (nul_terminated)
+ buf[size] = '\0';
+ }
+ break;
+
+ case CONV_POINTER:
+ {
+ void **ptr;
+
+ ptr = va_arg(ap, void **);
+ *ptr = value.v_pointer;
+ }
+ break;
+ case CONV_INTEGER:
+ {
+ void *ptr;
+
+ ptr = va_arg(ap, void *);
+ switch (conv_size) {
+ case SIZE_SHORT:
+ *(short *) ptr = value.v_integer;
+ break;
+ case SIZE_ANY:
+ *(int *) ptr = value.v_integer;
+ break;
+ case SIZE_LONG:
+ *(long *) ptr = value.v_integer;
+ break;
+ case SIZE_QUAD:
+ *(long long *) ptr = value.v_integer;
+ break;
+ default:
+ goto stop;
+ }
+ }
+ break;
+ case CONV_FLOAT:
+ {
+ void *ptr;
+
+ ptr = va_arg(ap, void *);
+ switch (conv_size) {
+ case SIZE_ANY:
+ *(float *) ptr = value.v_double;
+ break;
+ case SIZE_LONG:
+ *(double *) ptr = value.v_double;
+ break;
+ case SIZE_QUAD:
+ *(long double *) ptr = value.v_double;
+ break;
+ default:
+ goto stop;
+ }
+ }
+ break;
+ default:
+ goto stop;
+ }
+
+ num_fields++;
+ }
+
+stop: return num_fields;
+
+eof: if (num_fields)
+ return num_fields;
+ return EOF;
+}
+
+static int
+process_number(union scan_value *vp, const char **sp, char fmt)
+{
+ const char *s = *sp;
+
+ switch (fmt) {
+ case 'd':
+ vp->v_signed = strtoll(s, (char **) sp, 10);
+ break;
+ case 'i':
+ vp->v_signed = strtoll(s, (char **) sp, 0);
+ break;
+ case 'o':
+ vp->v_integer = strtoull(s, (char **) sp, 8);
+ break;
+ case 'u':
+ vp->v_integer = strtoull(s, (char **) sp, 10);
+ break;
+ case 'x':
+ case 'X':
+ vp->v_integer = strtoull(s, (char **) sp, 16);
+ break;
+ case 'p':
+ vp->v_pointer = (void *) strtoull(s, (char **) sp, 0);
+ break;
+ case 'f':
+ case 'g':
+ case 'e':
+ case 'E':
+ vp->v_double = strtold(s, (char **) sp);
+ break;
+ default:
+ return 0;
+ }
+
+ return 1;
+}
+
+static int
+process_char_class(const char **fmt, const char **sp, int width)
+{
+ unsigned char *s, c, prev_char = 0;
+ unsigned char table[255];
+ int val = 1;
+
+ s = (unsigned char *) *fmt;
+ if (*s == '^') {
+ memset(table, 1, sizeof(table));
+ val = 0;
+ s++;
+ } else {
+ memset(table, 0, sizeof(table));
+ val = 1;
+ }
+ /* First character in set is closing bracket means add it to the
+ * set of characters */
+ if ((c = *s) == ']') {
+ table[c] = val;
+ prev_char = c;
+ s++;
+ }
+
+ /* Any other closing bracket finishes off the set */
+ while ((c = *s++) != ']') {
+ if (prev_char) {
+ if (c == '-' && *s != '\0' && *s != ']') {
+ c = *s++;
+ } else {
+ //table[prev_char] = val;
+ prev_char = '\0';
+ }
+ }
+
+ if (c == '\0')
+ return 0;
+
+ if (prev_char) {
+ while (prev_char < c)
+ table[prev_char++] = val;
+ }
+ table[c] = val;
+ prev_char = c;
+ }
+ *fmt = (char *) s;
+
+#if 0
+ {
+ int n;
+
+ printf("char class=");
+ for (n = 0; n < 255; n++)
+ if (table[n])
+ printf(isprint(n)? "%c" : "\\%03o", n);
+ printf("\n");
+ }
+#endif
+
+ s = (unsigned char *) *sp;
+ while ((c = *s) != '\0' && table[c] && width--)
+ s++;
+
+ *sp = (char *) s;
+ return 1;
+}
+
+#ifdef TEST
+static int verify(const char *fmt, const char *s);
+static int verify_s(const char *fmt, const char *s);
+
+enum { S, I, L, F, D, P };
+
+int
+main(int argc, char **argv)
+{
+ verify("%d %d", "12 13");
+ verify("%d-%d", "12 13");
+ verify("%d-%d", "12-13");
+ verify("%u %u", "12 13");
+ verify("%o %o", "12 13");
+ verify("%x %x", "12 13");
+ verify("%X %X", "12 13");
+ verify("%hd %hd", "12 13");
+ verify("%ld %ld", "12 13");
+ verify("%lld %lld", "12 13");
+ verify("%Ld %Ld", "12 13");
+ verify("%qd %qd", "12 13");
+ verify("%f %f", "12 13");
+ verify("%lf %lf", "12 13");
+ verify("%Lf %Lf", "12 13");
+ verify("%qf %qf", "12 13");
+ verify("%*d-%d", "12-13");
+ verify("%*s %d", "12 13");
+ verify("%p", "0xdeadbeef");
+ verify("%*[a-e] %x", "deadbeef feeb");
+ verify("%*[a-f] %x", "deadbeef feeb");
+ verify("%*[^g-z] %x", "deadbeef feeb");
+ verify("%*[^ g-z] %x", "deadbeef feeb");
+ verify("%*[^ g-z-] %x", "dead-beef feeb");
+ verify("%*5s %d", "toast123 456");
+ verify("", "lalla");
+ verify("%u", "");
+
+ verify_s("%s", "aa bb");
+ verify_s("%s %s", "aa bb");
+ verify_s("%[a-z] %s", "aa bb");
+ verify_s("%c %s", "aa bb");
+ verify_s("%2c %s", " aa bb");
+ verify_s("%20c %s", " aa bb");
+
+ return 0;
+}
+
+static int
+verify(const char *fmt, const char *s)
+{
+ union scan_value vals[5], vals_ref[5], *v;
+ int n, m;
+
+ memset(vals, 0xe5, sizeof(vals));
+ memset(vals_ref, 0xe5, sizeof(vals_ref));
+
+ v = vals;
+ n = sec_sscanf(s, fmt, v + 0, v + 1, v + 2, v + 3, v + 4);
+
+ v = vals_ref;
+ m = sscanf(s, fmt, v + 0, v + 1, v + 2, v + 3, v + 4);
+
+ if (m != n) {
+ printf("FAILED: fmt=\"%s\"\n"
+ " str=\"%s\"\n"
+ " sec_scanf returns %d, sscanf returns %d\n",
+ fmt, s, n, m);
+ return 0;
+ }
+
+ if (memcmp(vals, vals_ref, sizeof(vals))) {
+ printf("FAILED: fmt=\"%s\"\n"
+ " str=\"%s\"\n"
+ " data differs!\n",
+ fmt, s);
+ printf("0x%Lx != 0x%Lx\n", vals[0].v_integer, vals_ref[0].v_integer);
+ return 0;
+ }
+
+ return 1;
+}
+
+static int
+verify_s(const char *fmt, const char *s)
+{
+ char buf[3][256], buf_ref[3][256];
+ int n, m;
+
+ memset(buf, 0xe5, sizeof(buf));
+ memset(buf_ref, 0xe5, sizeof(buf_ref));
+
+ n = sec_sscanf(s, fmt, buf, sizeof(buf[0]), buf + 1, sizeof(buf[1]), buf + 2, sizeof(buf[2]));
+
+ m = sscanf(s, fmt, buf_ref, buf_ref + 1, buf_ref + 2);
+
+ if (m != n) {
+ printf("FAILED: fmt=\"%s\"\n"
+ " str=\"%s\"\n"
+ " sec_scanf returns %d, sscanf returns %d\n",
+ fmt, s, n, m);
+ return 0;
+ }
+
+ if (memcmp(buf, buf_ref, sizeof(buf))) {
+ printf("FAILED: fmt=\"%s\"\n"
+ " str=\"%s\"\n"
+ " data differs!\n",
+ fmt, s);
+ printf("%s != %s\n", buf[0], buf_ref[0]);
+ return 0;
+ }
+
+ return 1;
+}
+#endif

View File

@ -1,177 +0,0 @@
--- .pkgextract
+++ .pkgextract 2006-02-28 15:49:27.000000000 +0100
@@ -0,0 +1 @@
+patch -p1 -b -s --suffix=".debian" < ../gv-3.6.3-deb.patch
--- NOTE
+++ NOTE 2008-03-27 13:49:41.452894000 +0100
@@ -0,0 +1,52 @@
+
+**
+** Copyright (C) 1995, 1996, 1997 Johannes Plass
+** Copyright (C) 2004 Jose E. Marchesi
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**
+** Author: Johannes Plass (plass@dipmza.physik.uni-mainz.de)
+** Department of Physic
+** Johannes Gutenberg-University
+** Mainz, Germany
+**
+** Jose E. Marchesi (jemarch@gnu.org)
+** GNU Project
+**
+
+GV is real based on ghostview 1.5 by Tim Theisen:
+
+ * Ghostview.c -- Ghostview widget.
+ * Copyright (C) 1992 Timothy O. Theisen
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Author: Tim Theisen Systems Programmer
+ * Internet: tim@cs.wisc.edu Department of Computer Sciences
+ * UUCP: uwvax!tim University of Wisconsin-Madison
+ * Phone: (608)262-0438 1210 West Dayton Street
+ * FAX: (608)262-9777 Madison, WI 53706
--- src/Ghostview.c
+++ src/Ghostview.c 2008-03-27 13:50:57.606662000 +0100
@@ -1419,6 +1419,12 @@ StartInterpreter(w)
if (gvw->ghostview.safer)
{
argv[argc++] = "-dSAFER";
+# ifdef ALLOW_PDF
+ /* The file created by pdf2dsc opens the original
+ pdf file with the read operator. */
+ if (gv_filename_dsc && (!gvw->ghostview.filename || !strcmp(gvw->ghostview.filename,"-")))
+ argv[argc++] = "-dDELAYSAFER";
+# endif
}
if (gvw->ghostview.arguments) {
--- src/Makefile.am
+++ src/Makefile.am 2008-03-27 17:36:23.280458747 +0100
@@ -6,9 +6,9 @@
# File distribution
bin_PROGRAMS = gv
-dist_pkglib_DATA = gv_system.ad gv_user.ad gv_class.ad gv_spartan.dat gv_user_res.dat gv_copyright.dat
+dist_pkglib_DATA = gv_system.ad gv_user.ad gv_class.ad gv_spartan.dat gv_user_res.dat gv_copyright.dat gv_widgetless.dat
-appdefaultsdir = $(pkglibdir)
+appdefaultsdir = $(datadir)/X11/app-defaults
appdefaults_DATA = GV
@@ -172,7 +172,7 @@ $(srcdir)/gv_user.ad : $(srcdir)/gv_user
@echo "! gv_user.ad" >> $(srcdir)/gv_user.ad
@echo "! User specific application defaults for gv" >> $(srcdir)/gv_user.ad
@echo "! Copyright (C) 1995, 1996, 1997 Johannes Plass" >> $(srcdir)/gv_user.ad
- @echo "! Copyright (C) 2004,2005,2006,2007 José E. Marchesi" >> $(srcdir)/gv_user.ad
+ @echo "! Copyright (C) 2004,2005,2006,2007 Jose E. Marchesi" >> $(srcdir)/gv_user.ad
@echo "!" >> $(srcdir)/gv_user.ad
@cat $(srcdir)/gv_user_res.dat >> $(srcdir)/gv_user.ad
@cat $(srcdir)/gv_intern_res_unix.dat >> $(srcdir)/gv_user.ad
@@ -215,7 +215,7 @@ $(srcdir)/gv_class.ad : $(srcdir)/gv_fon
@echo "! gv_class.ad" >> $(srcdir)/gv_class.ad
@echo "! Application class defaults for gv" >> $(srcdir)/gv_class.ad
@echo "! Copyright (C) 1995, 1996, 1997 Johannes Plass" >> $(srcdir)/gv_class.ad
- @echo "! Copyright (C) 2004,2005,2006,2007 José E. Marchesi" >> $(srcdir)/gv_class.ad
+ @echo "! Copyright (C) 2004,2005,2006,2007 Jose E. Marchesi" >> $(srcdir)/gv_class.ad
@echo "!" >> $(srcdir)/gv_class.ad
@echo "" >> $(srcdir)/gv_class.ad
@cat $(srcdir)/gv_user_res.dat >> $(srcdir)/gv_class.ad
@@ -236,7 +236,7 @@ $(srcdir)/gv_make_res.dat :
@echo "GV.useBackingPixmap: $(USE_BACKING_PIXMAP)" >> $(srcdir)/gv_make_res.dat
@echo "GV*dirs: Home\n\\" >> $(srcdir)/gv_make_res.dat
@echo " Tmp\n\\" >> $(srcdir)/gv_make_res.dat
- @echo " /usr/doc\n\\" >> $(srcdir)/gv_make_res.dat
+ @echo " /usr/share/doc\n\\" >> $(srcdir)/gv_make_res.dat
@echo " /usr/local/doc" >> $(srcdir)/gv_make_res.dat
@echo "GV*filter: no .*" >> $(srcdir)/gv_make_res.dat
@echo "GV*filters: None\n\\" >> $(srcdir)/gv_make_res.dat
--- src/gv_misc_res.dat
+++ src/gv_misc_res.dat 2006-02-28 15:49:27.000000000 +0100
@@ -50,7 +50,7 @@ GV*Scrollbar.background: gray78
GV*Scrollbar.pointerColor: black
GV*Scrollbar.pointerColorBackground: White
GV*Scrollbar.scrollbarBackground: gray71
-GV*Scrollbar.foreground: gray78
+GV*Scrollbar.foreground: gray65
GV*optionsetupPopup*Text*Scrollbar.background:gray71
GV*optionfsPopup*Text*Scrollbar.background:gray71
--- src/misc.c
+++ src/misc.c 2006-02-28 15:49:27.000000000 +0100
@@ -1337,7 +1337,8 @@ set_new_orientation(pagenumber)
else if ( no == O_LANDSCAPE) w = landscapeEntry;
else if ( no == O_UPSIDEDOWN) w = upsidedownEntry;
else w = seascapeEntry;
- set_newBitmapIfChanged(w,bitmap);
+ if (w)
+ set_newBitmapIfChanged(w,bitmap);
if (gv_swap_landscape != gv_swap_landscape_old)
widgets_setSelectedBitmap(swapEntry,gv_swap_landscape);
@@ -1369,13 +1370,17 @@ set_pagemediaButton_label(media_id)
Widget w;
if (pagemediaEntry[media_id]) w = pagemediaEntry[media_id];
else w = pagemediaEntry[media_id-1];
+ if (!w)
+ goto out;
XtSetArg(args[0], XtNlabel, &s);
XtGetValues(w, args, ONE);
}
else s = "?";
XtSetArg(args[0], XtNlabel, s);
XtSetValues(pagemediaButton, args, ONE);
+out:
ENDMESSAGE(set_pagemediaButton_label)
+ return;
}
/*------------------------------------------------------------*/
@@ -1443,7 +1448,8 @@ set_new_pagemedia(pagenumber)
else bitmap = app_res.selected_bitmap;
if (pagemediaEntry[gv_pagemedia]) w = pagemediaEntry[gv_pagemedia];
else w = pagemediaEntry[gv_pagemedia-1];
- set_newBitmapIfChanged(w,bitmap);
+ if (w)
+ set_newBitmapIfChanged(w,bitmap);
}
if (gv_pagemedia_auto != gv_pagemedia_auto_old) widgets_setSelectedBitmap(autoMediaEntry,gv_pagemedia_auto);
--- src/ps.c
+++ src/ps.c 2008-03-27 18:28:32.973306228 +0100
@@ -75,6 +75,8 @@
#define BUFSIZ 1024
#endif
#include <ctype.h>
+#include <sys/types.h>
+#include <sys/stat.h>
#include "paths.h"
#include INC_X11(Intrinsic.h)

View File

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

View File

@ -1,5 +1,5 @@
--- README.I18N
+++ README.I18N 2005-05-23 19:45:33.000000000 +0200
+++ README.I18N 2005-05-23 17:45:33.000000000 +0000
@@ -0,0 +1,28 @@
+GV I18N Fontset Patch for Japanese
+ Keio University in Japan
@ -30,39 +30,37 @@
+ /* Load pieces does this logic for us, but it shouldn't. Its messy.*/
+
--- src/Makefile.am
+++ src/Makefile.am 2008-03-27 17:03:55.202558681 +0100
@@ -12,7 +12,7 @@ appdefaultsdir = $(pkglibdir)
+++ src/Makefile.am 2010-02-24 12:15:17.160125983 +0000
@@ -14,7 +14,7 @@ appdefaultsdir = $(pkgdatadir)
appdefaults_DATA = GV
appdefaults_DATA = ../GV
-EXTRA_DIST=ad2c gv_font_res.dat gv_layout_res.dat gv_misc_res.dat Aaa_bison.yacc \
+EXTRA_DIST=ad2c gv_font_res.dat gv_font_res-I18N_mb.dat gv_layout_res.dat gv_misc_res.dat Aaa_bison.yacc \
gv_current.xbm gv_doc.xbm gv_empty.xbm gv_even.xbm gv_icon.xbm gv_odd.xbm \
gv_selected.xbm gv_unmark.xbm
@@ -208,7 +208,7 @@ $(srcdir)/gv_class.h : $(srcdir)/gv_clas
@@ -217,7 +217,7 @@ gv_class.h : gv_class.ad
@echo "creating gv_class.h"
@sh $(srcdir)/ad2c $(srcdir)/gv_class.ad > $(srcdir)/gv_class.h
@sh $(srcdir)/ad2c gv_class.ad > gv_class.h
-$(srcdir)/gv_class.ad : $(srcdir)/gv_font_res.dat $(srcdir)/gv_layout_res.dat $(srcdir)/gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat $(srcdir)/gv_intern_res_unix.dat
+$(srcdir)/gv_class.ad : $(srcdir)/gv_font_res-I18N_mb.dat $(srcdir)/gv_layout_res.dat $(srcdir)/gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat $(srcdir)/gv_intern_res_unix.dat
-gv_class.ad : $(srcdir)/gv_font_res.dat $(srcdir)/gv_layout_res.dat gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat gv_intern_res_unix.dat
+gv_class.ad : $(srcdir)/gv_font_res.dat $(srcdir)/gv_font_res-I18N_mb.dat $(srcdir)/gv_layout_res.dat gv_make_res.dat $(srcdir)/gv_misc_res.dat $(srcdir)/gv_user_res.dat gv_intern_res_unix.dat
@echo "creating gv_class.ad"
cp $(srcdir)/gv_copyright.dat $(srcdir)/gv_class.ad
@echo "!" >> $(srcdir)/gv_class.ad
@@ -221,7 +221,7 @@ $(srcdir)/gv_class.ad : $(srcdir)/gv_fon
@cat $(srcdir)/gv_user_res.dat >> $(srcdir)/gv_class.ad
@cat $(srcdir)/gv_intern_res_unix.dat >> $(srcdir)/gv_class.ad
@cat $(srcdir)/gv_make_res.dat >> $(srcdir)/gv_class.ad
- @cat $(srcdir)/gv_font_res.dat >> $(srcdir)/gv_class.ad
+ @cat $(srcdir)/gv_font_res-I18N_mb.dat >> $(srcdir)/gv_class.ad
@cat $(srcdir)/gv_misc_res.dat >> $(srcdir)/gv_class.ad
@cat $(srcdir)/gv_layout_res.dat >> $(srcdir)/gv_class.ad
@@ -262,3 +262,14 @@ endif
if USE_MEMDEBUG_CODE
cp $(srcdir)/gv_copyright.dat gv_class.ad
chmod u+w gv_class.ad
@@ -231,6 +231,7 @@ gv_class.ad : $(srcdir)/gv_font_res.dat
@cat $(srcdir)/gv_user_res.dat >> gv_class.ad
@cat gv_intern_res_unix.dat >> gv_class.ad
@cat gv_make_res.dat >> gv_class.ad
+ @cat $(srcdir)/gv_font_res-I18N_mb.dat >> gv_class.ad
@cat $(srcdir)/gv_font_res.dat >> gv_class.ad
@cat $(srcdir)/gv_misc_res.dat >> gv_class.ad
@cat $(srcdir)/gv_layout_res.dat >> gv_class.ad
@@ -278,3 +279,14 @@ if USE_MEMDEBUG_CODE
gv_SOURCES += d_mem.c d_mem.h d_xtmem.c d_xtmem.h
endif
+
+install-nls:
+ @for LNG in ja_JP.UTF-8 ko_KR.UTF-8; do \
+ test -f gv_nls_$$LNG.dat || continue; \
@ -73,32 +71,18 @@
+ $(INSTALL) $(INSTALLFLAGS) \
+ $(srcdir)/GV_$$LNG.ad $(DESTDIR)$(datadir)/X11/$$LNG/app-defaults/GV; \
+ done
--- src/callbacks.c
+++ src/callbacks.c 2005-05-23 19:45:33.000000000 +0200
@@ -767,12 +767,6 @@ cb_openFile(w, client_data, call_data)
BEGINMESSAGE(cb_openFile)
XawFileSelectionRemoveButton(FileSel, 3);
- n=0;
- XtSetArg(args[n], XtNtitle, "Open File"); ++n;
- XtSetValues(FileSel_popup, args, n);
- n=0;
- XtSetArg(args[n], XtNlabel, "Open File"); ++n;
- XtSetValues(button, args, n);
XtRemoveAllCallbacks(button, XtNcallback);
XtAddCallback(button, XtNcallback,cb_doOpenFile,NULL);
+
--- src/dialog.c
+++ src/dialog.c 2008-03-27 15:52:18.179200931 +0100
@@ -29,6 +29,7 @@
*/
+++ src/dialog.c 2010-02-24 13:05:21.608126304 +0000
@@ -31,6 +31,7 @@
#include "ac_config.h"
#include "config.h"
+#include "VlistP.h"
#include <stdio.h>
@@ -270,20 +271,27 @@ void DialogPopupSetText(s)
@@ -272,20 +273,27 @@ void DialogPopupSetText(s)
Arg args[10];
Cardinal n;
Widget response;
@ -127,7 +111,7 @@
XtSetArg(args[n], XtNleftMargin, &lm); n++;
XtSetArg(args[n], XtNrightMargin, &rm); n++;
XtSetArg(args[n], XtNborderWidth, &bw); n++;
@@ -291,8 +299,12 @@ void DialogPopupSetText(s)
@@ -293,8 +301,12 @@ void DialogPopupSetText(s)
XtSetArg(args[n], XtNwidth, &width); n++;
XtGetValues(response, args, n);
n=0;
@ -143,13 +127,14 @@
if (nw>width) {
INFIMESSAGE(new width,nw)
--- src/gv_font_res-I18N_mb.dat
+++ src/gv_font_res-I18N_mb.dat 2005-05-23 19:46:28.000000000 +0200
@@ -0,0 +1,52 @@
+++ src/gv_font_res-I18N_mb.dat 2010-02-24 12:16:33.728125910 +0000
@@ -0,0 +1,55 @@
+
+!########## gv_font_res_linux.dat
+
+GV*international: True
+
+!##### Fonts
+!##### FontSets
+
+GV*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*SmeBSB.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
@ -160,6 +145,8 @@
+GV.?.locator*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.dateButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.titleButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*optiongvPopup*infoVerboseButton.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.infoVerboseButton*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.prevPage*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV.?.nextPage*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*newtoc.fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
@ -198,7 +185,7 @@
+GV*versionPopup*versionTextb*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
+GV*infoPopup*Text*fontSet: -efont-biwidth-medium-r-normal--16-*-*-*-*-*-iso10646-1,-gnu-unifont-medium-r-normal--16-*-*-*-*-*-iso10646-1,-adobe-helvetica-medium-r-normal--14-*-*-*-*-*-*-*,-jis-fixed-medium-r-*--16-*-*-*-*-*-jisx0208.1983-0,-*-*-medium-r-*--16-*-*-*-*-*-*-*,*
--- src/gv_misc_res.dat
+++ src/gv_misc_res.dat 2005-05-23 19:45:33.000000000 +0200
+++ src/gv_misc_res.dat 2005-05-23 17:45:33.000000000 +0000
@@ -220,6 +220,10 @@ GV*optionsetupPopup*scalesFrame.forcedWi
GV*optionsetupPopup*mediasFrame.forcedWidth: 240
GV*optionsetupPopup*mediasFrame.forcedHeight: 400
@ -210,7 +197,7 @@
!##### Panner
GV*pannerFrame.frameType: sunken
@@ -317,6 +321,7 @@ GV*checkFile.label: Check File
@@ -321,6 +325,7 @@ GV*checkFile.label: Check File
GV*filters.label: Filters:
GV*dirs.label: Directories
GV*button1.label: Cancel
@ -219,7 +206,7 @@
GV*screenSizeLabel.label: Screen Size (mm)
--- src/gv_nls_ja_JP.UTF-8.dat
+++ src/gv_nls_ja_JP.UTF-8.dat 2008-03-27 16:17:51.247892392 +0100
+++ src/gv_nls_ja_JP.UTF-8.dat 2008-03-27 15:17:51.000000000 +0000
@@ -0,0 +1,202 @@
+!
+!** Copyright (C) 1995, 1996, 1997 Johannes Plass
@ -424,7 +411,7 @@
+GV*miscMenu.save_marked.label: マーク部分保存
+
--- src/gv_nls_ko_KR.UTF-8.dat
+++ src/gv_nls_ko_KR.UTF-8.dat 2008-03-27 16:41:29.417781453 +0100
+++ src/gv_nls_ko_KR.UTF-8.dat 2008-03-27 15:41:29.000000000 +0000
@@ -0,0 +1,202 @@
+!
+!** Copyright (C) 1995, 1996, 1997 Johannes Plass
@ -629,16 +616,16 @@
+GV*miscMenu.save_marked.label: 표시 저장
+
--- src/info.c
+++ src/info.c 2008-03-27 15:58:13.548742759 +0100
@@ -35,6 +35,7 @@
+++ src/info.c 2008-03-27 14:58:14.000000000 +0000
@@ -36,6 +36,7 @@
#include "message.h"
#include "config.h"
+#include "VlistP.h"
#include <stdio.h>
@@ -68,6 +69,20 @@ static Bool infoPopupCreated = False;
#include <stdlib.h>
@@ -70,6 +71,20 @@ static Bool infoPopupCreated = False;
static Bool infoPopupVisible = False;
static int info_length;
@ -659,7 +646,7 @@
/*###############################################################################
cb_popupInfoPopup
###############################################################################*/
@@ -183,7 +198,9 @@ void makeInfoPopup()
@@ -193,7 +208,9 @@ void makeInfoPopup(void)
Cardinal n;
Dimension bottomMargin, leftMargin, rightMargin, topMargin;
Dimension width, height;
@ -669,7 +656,7 @@
BEGINMESSAGE(makeInfoPopup)
@@ -211,20 +228,30 @@ void makeInfoPopup()
@@ -221,20 +238,30 @@ void makeInfoPopup(void)
XtSetArg(args[n], XtNleft, XtChainLeft); n++;
XtSetArg(args[n], XtNright, XtChainRight); n++;
infodismiss = XtCreateManagedWidget("dismiss", buttonWidgetClass,infoform,args,n);
@ -704,8 +691,8 @@
n=0;
XtSetArg(args[0], XtNwidth, width); n++;
--- src/main.c
+++ src/main.c 2008-03-27 15:58:52.821773601 +0100
@@ -380,6 +380,32 @@ int main(argc, argv)
+++ src/main.c 2008-03-27 14:58:53.000000000 +0000
@@ -408,6 +408,32 @@ int main(argc, argv)
/*### initializing toolkit and the application context ########*/
@ -739,8 +726,8 @@
XtToolkitInitialize();
app_con = XtCreateApplicationContext();
--- src/misc_private.c
+++ src/misc_private.c 2008-03-27 16:02:51.532357064 +0100
@@ -47,6 +47,7 @@
+++ src/misc_private.c 2010-02-24 13:11:25.712127659 +0000
@@ -48,6 +48,7 @@
#include "types.h"
#include "misc_private.h"
@ -748,7 +735,7 @@
/*############################################################*/
/* update_label */
@@ -58,6 +59,7 @@ update_label(widget,text)
@@ -59,6 +60,7 @@ update_label(widget,text)
char *text;
{
LabelWidget w = (LabelWidget) widget;
@ -756,7 +743,7 @@
int shadow;
BEGINMESSAGE1(update_label)
@@ -77,26 +79,41 @@ update_label(widget,text)
@@ -78,26 +80,41 @@ update_label(widget,text)
if (text) { /* most of the following comes from X11/Xaw/Label.c */
Position x,y;
INFSMESSAGE(update_label,text)

104
gv-3.6.8.dif Normal file
View File

@ -0,0 +1,104 @@
--- NOTE
+++ NOTE 2008-03-27 13:49:41.452894000 +0100
@@ -0,0 +1,52 @@
+
+**
+** Copyright (C) 1995, 1996, 1997 Johannes Plass
+** Copyright (C) 2004 Jose E. Marchesi
+**
+** This program is free software; you can redistribute it and/or modify
+** it under the terms of the GNU General Public License as published by
+** the Free Software Foundation; either version 2 of the License, or
+** (at your option) any later version.
+**
+** This program is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+** GNU General Public License for more details.
+**
+** You should have received a copy of the GNU General Public License
+** along with this program; if not, write to the Free Software
+** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+**
+** Author: Johannes Plass (plass@dipmza.physik.uni-mainz.de)
+** Department of Physic
+** Johannes Gutenberg-University
+** Mainz, Germany
+**
+** Jose E. Marchesi (jemarch@gnu.org)
+** GNU Project
+**
+
+GV is real based on ghostview 1.5 by Tim Theisen:
+
+ * Ghostview.c -- Ghostview widget.
+ * Copyright (C) 1992 Timothy O. Theisen
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Author: Tim Theisen Systems Programmer
+ * Internet: tim@cs.wisc.edu Department of Computer Sciences
+ * UUCP: uwvax!tim University of Wisconsin-Madison
+ * Phone: (608)262-0438 1210 West Dayton Street
+ * FAX: (608)262-9777 Madison, WI 53706
--- src/Makefile.am
+++ src/Makefile.am 2010-02-24 14:55:52.632125725 +0100
@@ -10,7 +10,7 @@ bin_SCRIPTS = gv-update-userconfig
dist_pkgdata_DATA = gv_spartan.dat gv_user_res.dat gv_copyright.dat gv_widgetless.dat
pkgdata_DATA = gv_system.ad gv_user.ad gv_class.ad
-appdefaultsdir = $(pkgdatadir)
+appdefaultsdir = $(datadir)/X11/app-defaults
appdefaults_DATA = ../GV
@@ -176,7 +176,7 @@ gv_user.ad : $(srcdir)/gv_user_res.dat g
@echo "! gv_user.ad" >> gv_user.ad
@echo "! User specific application defaults for gv" >> gv_user.ad
@echo "! Copyright (C) 1995, 1996, 1997 Johannes Plass" >> gv_user.ad
- @echo "! Copyright (C) 2004,2005,2006,2007 José E. Marchesi" >> gv_user.ad
+ @echo "! Copyright (C) 2004,2005,2006,2007 Jose E. Marchesi" >> gv_user.ad
@echo "!" >> gv_user.ad
@cat $(srcdir)/gv_user_res.dat >> gv_user.ad
@cat gv_intern_res_unix.dat >> gv_user.ad
@@ -225,7 +225,7 @@ gv_class.ad : $(srcdir)/gv_font_res.dat
@echo "! gv_class.ad" >> gv_class.ad
@echo "! Application class defaults for gv" >> gv_class.ad
@echo "! Copyright (C) 1995, 1996, 1997 Johannes Plass" >> gv_class.ad
- @echo "! Copyright (C) 2004,2005,2006,2007 José E. Marchesi" >> gv_class.ad
+ @echo "! Copyright (C) 2004,2005,2006,2007 Jose E. Marchesi" >> gv_class.ad
@echo "!" >> gv_class.ad
@echo "" >> gv_class.ad
@cat $(srcdir)/gv_user_res.dat >> gv_class.ad
@@ -247,7 +247,7 @@ gv_make_res.dat :
@echo "GV.useBackingPixmap: $(USE_BACKING_PIXMAP)" >> gv_make_res.dat
@echo "GV*dirs: Home\n\\" >> gv_make_res.dat
@echo " Tmp\n\\" >> gv_make_res.dat
- @echo " $(sysdocdir)\n\\" >> gv_make_res.dat
+ @echo " /usr/share/doc\n\\" >> gv_make_res.dat
@echo " /usr/local/doc" >> gv_make_res.dat
@echo "GV*filter: no .*" >> gv_make_res.dat
@echo "GV*filters: None\n\\" >> gv_make_res.dat
--- src/gv_misc_res.dat
+++ src/gv_misc_res.dat 2006-02-28 15:49:27.000000000 +0100
@@ -50,7 +50,7 @@ GV*Scrollbar.background: gray78
GV*Scrollbar.pointerColor: black
GV*Scrollbar.pointerColorBackground: White
GV*Scrollbar.scrollbarBackground: gray71
-GV*Scrollbar.foreground: gray78
+GV*Scrollbar.foreground: gray65
GV*optionsetupPopup*Text*Scrollbar.background:gray71
GV*optionfsPopup*Text*Scrollbar.background:gray71

3
gv-3.6.8.tar.bz2 Normal file
View File

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

View File

@ -1,4 +1,24 @@
-------------------------------------------------------------------
---------------------------------------------------------------
Wed Feb 24 15:18:22 CET 2010 - werner@suse.de
- Update to gv 3.6.8
* Various fixes
+ DSC parser now respects the level of BeginDocument/EndDocument
+ Possible segfault has been fixed
+ Fixed bug #21239: Vlist.c produces garbage if International is set
+ Fixed bug #21740: popup windows may partly invisible as not on the screen
+ The escape key is now working in more contexts
+ The filename can optionally be shown insted of the title
+ Fixed bug #23199: No error message for errors in opened file
+ Got rid of non-free code.
* New feartures
---------------------------------------------------------------
Wed Feb 24 14:45:32 CET 2010 - werner@suse.de
- Ensure that button and titles are reset to its default values (bnc#582290)
---------------------------------------------------------------
Thu Mar 27 19:01:38 CET 2008 - werner@suse.de
- Update to gv 3.6.3

188
gv.spec
View File

@ -1,7 +1,7 @@
#
# spec file for package gv (Version 3.6.3)
# spec file for package gv (Version 3.6.8)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -28,7 +28,7 @@ BuildRequires: xaw3d
%if %suse_version < 1100
BuildRequires: desktop-data-SuSE
%endif
License: GPL v2 or later
License: GPLv2+
Group: Productivity/Publishing/PS
PreReq: %install_info_prereq
Requires: ghostscript_x11
@ -39,21 +39,17 @@ Conflicts: gs_serv gs_vga
AutoReqProv: on
Url: http://www.gnu.org/software/gv/
Summary: A Program to View PostScript Files
Version: 3.6.3
Release: 53
Source0: gv-3.6.3.tar.bz2
Version: 3.6.8
Release: 1
Source0: gv-3.6.8.tar.bz2
Source1: gv.desktop
Source2: gv.png
Patch0: gv-3.6.3-deb.patch
Patch1: gv-3.6.3.dif
Patch2: gv-3.6.3-security.patch
Patch3: gv-3.6.3-bzip2.patch
Patch1: gv-3.6.8.dif
# I18N patch originally from:
# http://www.on.cs.keio.ac.jp/~yasu/jp_xaw.html
# http://www.on.cs.keio.ac.jp/~yasu/linux/Xaw/gv-3.5.8-I18N-mb.patch
# changed a little bit for SuSE:
Patch4: gv-3.6.3-I18N-mb.patch
Patch5: gv-3.6.3-intptr_t.patch
Patch4: gv-3.6.8-I18N-mb.patch
Patch6: gv-3.6.3-settitle.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{expand: %%global _exec_prefix %(type -p pkg-config &>/dev/null && pkg-config --variable prefix x11 || echo /usr/X11R6)}
@ -80,19 +76,12 @@ Authors:
--------
Tim Theisen <tim@cs.wisc.edu>
Johannes Plass <plass@dipmza.physik.uni-mainz.de>
José E. Marchesi <jemarch@gnu.org>
%prep
%setup
echo >> src/Makefile.am
%patch0 -p1 -b .deb
%patch1 -p0
%patch2 -p0 -b .sec
# fzopen from libzio does not work due ftell()
#patch3 -p0 -b .bzip2
#
%patch4 -p0 -b .I18N-mb
%patch5 -p0 -b .intptr_t
%patch6 -p0 -b .settitle
%build
@ -133,15 +122,16 @@ export CC CFLAGS LDFLAGS
--disable-memmove-code \
--disable-setenv-code \
--with-default-papersize=a4
make pkglibdir='%{_x11data}/gv'
make pkgdatadir='%{_x11data}/gv'
%install
rm -rf %{buildroot}
mkdir %{buildroot}
make DESTDIR=%{buildroot} pkglibdir='%{_x11data}/gv' install
make DESTDIR=%{buildroot} pkglibdir='%{_x11data}/gv' install-info
make DESTDIR=%{buildroot} pkglibdir='%{_x11data}/gv' install-man
make -C src DESTDIR=%{buildroot} pkglibdir='%{_x11data}/gv' install-nls
make DESTDIR=%{buildroot} pkgdatadir='%{_x11data}/gv' install
make DESTDIR=%{buildroot} pkgdatadir='%{_x11data}/gv' install-info
make DESTDIR=%{buildroot} pkgdatadir='%{_x11data}/gv' install-man
make -C src DESTDIR=%{buildroot} pkgdatadir='%{_x11data}/gv' install-nls
mkdir -p %{buildroot}/%{_defaultdocdir}/gv
install -m 0444 NOTE %{buildroot}/%{_defaultdocdir}/gv/Copyright
# add font settings to app-defaults:
@ -180,158 +170,12 @@ iconv -f UTF-8 -t EUC-KR < %{buildroot}%{_x11data}/ko_KR.UTF-8/app-defaults/GV \
%dir %{_x11data}/*/app-defaults
%config %{_x11data}/*/app-defaults/GV
%{_bindir}/gv
%{_bindir}/gv-update-userconfig
%doc %{_mandir}/man1/gv.1.gz
%doc %{_mandir}/man1/gv-update-userconfig.1.gz
%doc %{_infodir}/gv.info.gz
%dir %{_defaultdocdir}/gv
%docdir %{_defaultdocdir}/gv
%{_defaultdocdir}/gv/Copyright
%changelog
* Thu Mar 27 2008 werner@suse.de
- Update to gv 3.6.3
* gv is now able to work with latest ghostscript: gs 8.57
* The bug causing the version not to figure in the manual has been
fixed.
* The SIGINT signal is now masked (ignored) by gv.
* gv no more segfaults when reading a configuration file as produced by
State -> Setup Options -> Save
* gv should compile in non-GNU system that doesnt have glib2. The
`getopt' gnulib module has been imported to fix this.
* gv now correctly adjust the page index window after PAGE-UP and
PAGE-DOWN events.
* gv is now able to open files with minus character beginning
filenames.
* X resources related bugs has been fixed. gv is now able to get
resources from the display database, user file, gv system database
and command line doing the Right Thing (TM).
* gv is now able to correctly understand DocumentMedia and other DSC
directives that uses postscript strings. It was not possible with
previous versions due to a bug in the postscript names scanning
routine.
* New set of command line arguments. This solves the horrid bug on
gv 3.6.0 that made such release nearly unusable. See the
documentation for details about the new argument list.
* The "Reopen" entry on the File menu has been renamed to "Reload" in
order to be coherent with the "Reload" button.
* The distributed package structure have been fixed, now conforming a
legal GNU source package.
* The delete key now work as expected, that is, it deletes the next
character rather the last character when typed on text entries.
* Dot files are not shown by default on file selection forms.
* If you try to open an empty file you get a coherent error
message.
* New manual page
* The gs command used for PDF to PostScript conversion has been fixed to allow
document saving.
* New configuration/compilation/installation using GNU Autotools
* Documentation is now distributed in texinfo format.
* "Redisplay" button has been renamed to "Reload".
* Some GNU standard command line arguments are supported now:
--help, --usage and --version.
* Antialiasing is now used by default.
* Solved bug #11014: gv is capable to open files with spaces (or other
harm character) in the filename.
- Use Debain patch
- Port our patches to this version
* Sun Jan 13 2008 coolo@suse.de
- remove desktop-data from buildrequires
* Thu Jul 05 2007 coolo@suse.de
- put desktop file and icon into the package
* Fri Jun 01 2007 dmueller@suse.de
- fix buildrequires
* Fri Nov 17 2006 werner@suse.de
- Corrected version of last fix (bug #219454)
* Thu Nov 09 2006 werner@suse.de
- Avoid buffer overflow in gv gettext() (bug #219454)
* Thu Aug 24 2006 werner@suse.de
- Check for existence of gv.png
* Wed Aug 02 2006 werner@suse.de
- Make it build with X11R7
* Tue Feb 28 2006 werner@suse.de
- Fix range of array subscript (bug #154109)
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Tue Nov 29 2005 sbrabec@suse.cz
- Don't package icon already present in desktop-data-SuSE.
Cleans rpm -V output.
* Tue Jun 07 2005 meissner@suse.de
- Use RPM_OPT_FLAGS.
* Mon May 23 2005 mfabian@suse.de
- Bugzilla #85410: improve default fontsets to make it work better
with the recent changes in the XLC_LOCALE files in Xorg.
Japanese should look nicer now and warning messages should
usually disappear.
* Mon Apr 18 2005 werner@suse.de
- Set DELAYSAFER for dsc file of the pdf within a pipe (bug #78322)
* Wed Apr 13 2005 werner@suse.de
- Add a return after label even for void functions for stupid gcc4
* Wed Nov 17 2004 werner@suse.de
- Add gv.png pixmap to file list
* Mon Jun 28 2004 mfabian@suse.de
- add "-*-*-Medium-R-*--16-*-*-*-*-*-*-*" to all fontsets as a
fallback to suppress useless warnings if
"-*-*-Medium-R-*--14-*-*-*-*-*-*-*" or other sizes are not
available. For example, Korean fonts in sizes other than 16
pixel are usually not available in a Japanese installation.
Therefore one gets warnings because the ja_JP.UTF-8/XLC_LOCALE \
file usually specifies the charset KSC5601.1987-0 as well.
In 16 pixel, there are fonts for all common encodings already
in the basic X11 packages, therefore 16 pixel should
always work as a fallback.
* Fri May 28 2004 adrian@suse.de
- add "Office" to Categories to match the menu definition (#41338)
* Fri Apr 30 2004 mfabian@suse.de
- Bugzilla #39594: add gv-3.5.8-I18N-mb.patch to support the
display of multibyte file names.
- intptr_t.patch: fix compiler warnings
"converting integer to pointer of different size"
- fix display of file names in the window title and icons by
setting _NET_WM_NAME and _NET_WM_ICON_NAME properties
(thanks a lot to Marcus Schaefer <ms@suse.de> for help).
* Thu Apr 29 2004 werner@suse.de
- correct category for desktop file: "PostScript Viewer"
-> "Viewer".
* Tue Apr 06 2004 werner@suse.de
- Add desktop entry
* Sat Jan 10 2004 adrian@suse.de
- add %%defattr
* Mon Aug 25 2003 werner@suse.de
- Fix menu entry for bunzip2 label
* Fri Aug 22 2003 werner@suse.de
- Uncompress bzip2 files on the fly, patch based on
Volker Kuhlmann's patch (bug #29260)
* Tue Apr 15 2003 coolo@suse.de
- use BuildRoot
* Mon Mar 10 2003 werner@suse.de
- Fix sigsegv in case of unkown paper size.
* Fri Nov 08 2002 werner@suse.de
- Remove XCOMM definition to make new cpp happy
* Fri Sep 20 2002 okir@suse.de
- added security patch to address buffer overflows
* Tue Sep 17 2002 ro@suse.de
- removed bogus self-provides
* Mon Jan 14 2002 schwab@suse.de
- Fix use of token concatenation.
* Thu Jun 21 2001 ro@suse.de
- use ComplexProgramTargetNoMan
* Fri Oct 06 2000 kukuk@suse.de
- change group tag
- Remove bogus xshared requires, rpm will handle this correct
* Wed May 24 2000 kukuk@suse.de
- Use /usr/share/doc/packages
* Mon Jan 24 2000 werner@suse.de
- Add Debian patch 15 for gv 3.5.8
- Use RPM_OPT_FLAGS
* Mon Sep 20 1999 ro@suse.de
- added Requires ghostscript_x11
* Mon Sep 13 1999 bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Wed Oct 15 1997 werner@suse.de
- New version: 3.5.8
- This version is usable only with Xaw3d
* Thu Feb 13 1997 werner@suse.de
- New package with gv version 2_7_6
- Remove call of Xaw/Xaw3d private function ...
now we can use Xaw or Xaw3d or Xaw95.
- Some small changes on app-defaults for
better viewing in all three Athena Widgets