Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kretzschmar <mkretzschmar@src.gnome.org>2003-02-23 13:35:35 (GMT)
committer Martin Kretzschmar <mkretzschmar@src.gnome.org>2003-02-23 13:35:35 (GMT)
commit939b9d12f2919ceea85575e6b7e1d67874da91a8 (patch)
tree5883ee7aecd09f877509316678ae5bc164dbd0b4
parent12bafbb7ffef77d5b5b948bbe8c49fe9497d9d9d (diff)
new widget: table with labels displaying properties of PDFs
* xpdf/pdf-properties-display.c, xpdf/pdf-properties-display.h, xpdf/gpdf-properties-dialog.glade: new widget: table with labels displaying properties of PDFs * xpdf/gpdf-control.cc (has_unicode_marker) (utf16_big_endian_to_utf8, info_dict_get_string) (info_dict_get_date, gpdf_control_process_string_property) (gpdf_control_process_date_property) (gpdf_control_process_properties) (gpdf_control_properties_dialog_response_cb) (verb_FileProperties_cb): new: a PDF properties command * xpdf/Makefile.am: build pdf-properties-display.[ch], install glade file * xpdf/.cvsignore: ignore gpdf-properties-dialog.gladep * xpdf/gpdf-persist-stream.h, xpdf/gpdf-persist-stream.cc (gpdf_persist_stream_get_length): new function * xpdf/gpdf-control-ui.xml: add FileProperties command and menu item inside a "File Items Placeholder" * shell/gpdf-window-ui.xml: add "File Items Placeholder" * configure.in: check for libglade-2.0 * Makefile.am (EXTRA_DIST): don't dist gpdf.mime * xpdf/PDFDoc.cc, xpdf/Function.cc, xpdf/FontFile.cc, goo/parseargs.c: call atof only in the "C" locale
-rw-r--r--pdf/goo/parseargs.c7
-rw-r--r--pdf/xpdf/.cvsignore1
-rw-r--r--pdf/xpdf/FontFile.cc7
-rw-r--r--pdf/xpdf/Function.cc7
-rw-r--r--pdf/xpdf/Makefile.am10
-rw-r--r--pdf/xpdf/PDFDoc.cc7
6 files changed, 30 insertions, 9 deletions
diff --git a/pdf/goo/parseargs.c b/pdf/goo/parseargs.c
index ad8460a..1f2c986 100644
--- a/pdf/goo/parseargs.c
+++ b/pdf/goo/parseargs.c
@@ -6,6 +6,7 @@
* Copyright 1996-2002 Glyph & Cog, LLC
*/
+#include <locale.h>
#include <stdio.h>
#include <stddef.h>
#include <string.h>
@@ -117,7 +118,11 @@ static GBool grabArg(ArgDesc *arg, int i, int *argc, char *argv[]) {
break;
case argFP:
if (i + 1 < *argc && isFP(argv[i+1])) {
- *(double *)arg->val = atof(argv[i+1]);
+ {
+ char *theLocale = setlocale(LC_NUMERIC, "C");
+ *(double *)arg->val = atof(argv[i+1]);
+ setlocale(LC_NUMERIC, theLocale);
+ }
n = 2;
} else {
ok = gFalse;
diff --git a/pdf/xpdf/.cvsignore b/pdf/xpdf/.cvsignore
index 6ebaacb..9df01f3 100644
--- a/pdf/xpdf/.cvsignore
+++ b/pdf/xpdf/.cvsignore
@@ -9,6 +9,7 @@ gnome-pdf-viewer
gpdf
gpdf-marshal.c
gpdf-marshal.h
+gpdf-properties-dialog.gladep
pdfimages
pdfinfo
pdftopbm
diff --git a/pdf/xpdf/FontFile.cc b/pdf/xpdf/FontFile.cc
index ae58547..56807a4 100644
--- a/pdf/xpdf/FontFile.cc
+++ b/pdf/xpdf/FontFile.cc
@@ -11,6 +11,7 @@
#endif
#include <aconf.h>
+#include <locale.h>
#include <math.h>
#include <stdlib.h>
#include <stddef.h>
@@ -2130,7 +2131,11 @@ double Type1CFontFile::getNum(Guchar **ptr, GBool *isFP) {
}
} while (i < 64);
buf[i] = '\0';
- x = atof(buf);
+ {
+ char *theLocale = setlocale(LC_NUMERIC, "C");
+ x = atof(buf);
+ setlocale(LC_NUMERIC, theLocale);
+ }
*isFP = gTrue;
} else if (b0 == 31) {
x = 0;
diff --git a/pdf/xpdf/Function.cc b/pdf/xpdf/Function.cc
index 64ea60c..6d70858 100644
--- a/pdf/xpdf/Function.cc
+++ b/pdf/xpdf/Function.cc
@@ -11,6 +11,7 @@
#endif
#include <aconf.h>
+#include <locale.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
@@ -1071,7 +1072,11 @@ GBool PostScriptFunction::parseCode(Stream *str, int *codePtr) {
resizeCode(*codePtr);
if (isReal) {
code[*codePtr].type = psReal;
- code[*codePtr].real = atof(tok->getCString());
+ {
+ char *theLocale = setlocale(LC_NUMERIC, "C");
+ code[*codePtr].real = atof(tok->getCString());
+ setlocale(LC_NUMERIC, theLocale);
+ }
} else {
code[*codePtr].type = psInt;
code[*codePtr].intg = atoi(tok->getCString());
diff --git a/pdf/xpdf/Makefile.am b/pdf/xpdf/Makefile.am
index dbaa4e4..d346d60 100644
--- a/pdf/xpdf/Makefile.am
+++ b/pdf/xpdf/Makefile.am
@@ -125,6 +125,8 @@ gnome_pdf_viewer_SOURCES = \
gtkgesture.h \
page-control.c \
page-control.h \
+ pdf-properties-display.c \
+ pdf-properties-display.h \
$(BUILT_SOURCES)
# Font embedding hack for Gnome Print < 2.1.?2?
@@ -224,13 +226,11 @@ gpdf-marshal.c: gpdf-marshal.list $(GLIB_GENMARSHAL)
stockdir = $(datadir)/pixmaps/gpdf
stock_DATA = fitwidth.png
-ltk = \
- xpdf-flip.ltk \
- xpdf-top.ltk \
- xpdf.ltk
+gladedir = $(datadir)/gpdf/glade
+glade_DATA = \
+ gpdf-properties-dialog.glade
server_in_files = GNOME_PDF.server.in.in
-
serverdir = $(libdir)/bonobo/servers
server_DATA = $(server_in_files:.server.in.in=.server)
$(server_in_files:.server.in.in=.server.in): $(server_in_files)
diff --git a/pdf/xpdf/PDFDoc.cc b/pdf/xpdf/PDFDoc.cc
index 683e4d2..f3b7f79 100644
--- a/pdf/xpdf/PDFDoc.cc
+++ b/pdf/xpdf/PDFDoc.cc
@@ -11,6 +11,7 @@
#endif
#include <aconf.h>
+#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
@@ -168,7 +169,11 @@ void PDFDoc::checkHeader() {
}
str->moveStart(i);
p = strtok(&hdrBuf[i+5], " \t\n\r");
- pdfVersion = atof(p);
+ {
+ char *theLocale = setlocale(LC_NUMERIC, "C");
+ pdfVersion = atof(p);
+ setlocale(LC_NUMERIC, theLocale);
+ }
if (!(hdrBuf[i+5] >= '0' && hdrBuf[i+5] <= '9') ||
pdfVersion > supportedPDFVersionNum + 0.0001) {
error(-1, "PDF version %s -- xpdf supports version %s"