summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Johnston <ray.johnston@artifex.com>2009-05-01 23:51:03 +0000
committerRay Johnston <ray.johnston@artifex.com>2009-05-01 23:51:03 +0000
commit149f54bafb5a11981e43d940e70deb371118854a (patch)
tree9cb2e104355518e492a535bddca5efed54b84ff4
parent1e26ed3dce2f221355f97974782a812672d7b177 (diff)
Add an 'IODevice' aware layer for filesystem enumeration 'gs_enumerate_*'
which needs to be used whenever the file is not known to be on the default iodev (%os% by default). Use this in the PDL parser to open fonts so that COMPILE_INITS=1 does not need the fonts on the disk. The default PXL/PCL builds now use COMPILE_INITS=1. Fixes bug #690367. DETAILS: The %rom%ttfonts/ path is placed BEFORE the built-in paths in pjparse.c, but NOTE: the PCLFONTSOURCE environment variable will still supersede the internal paths including %rom%ttfonts. EXPECTED DIFFERENCES: None. Particularly since the default build and regression tests do not rely on COMPILE_INITS=1. git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@9717 a1074d23-0009-0410-80fe-cf8c14f379e6
-rw-r--r--main/pcl6_gcc.mak2
-rw-r--r--main/pcl6_msvc.mak2
-rw-r--r--pl/pjparse.c18
-rw-r--r--pl/pllfont.c4
4 files changed, 13 insertions, 13 deletions
diff --git a/main/pcl6_gcc.mak b/main/pcl6_gcc.mak
index a999b6519..20082be7d 100644
--- a/main/pcl6_gcc.mak
+++ b/main/pcl6_gcc.mak
@@ -50,7 +50,7 @@ IMDISRCDIR?=../gs/imdi
PDL_INCLUDE_FLAGS?=-DPCL_INCLUDED
# Choose COMPILE_INITS=1 for init files and fonts in ROM (otherwise =0)
-COMPILE_INITS?=0
+COMPILE_INITS?=1
# PLPLATFORM indicates should be set to 'ps' for language switch
# builds and null otherwise.
diff --git a/main/pcl6_msvc.mak b/main/pcl6_msvc.mak
index 59d5ce68e..b8ca3bc79 100644
--- a/main/pcl6_msvc.mak
+++ b/main/pcl6_msvc.mak
@@ -54,7 +54,7 @@ IMDISRCDIR=..\gs\imdi
!endif
!ifndef COMPILE_INITS
-COMPILE_INITS=0
+COMPILE_INITS=1
!endif
# PLPLATFORM indicates should be set to 'ps' for language switch
diff --git a/pl/pjparse.c b/pl/pjparse.c
index 4bd089928..5ccd99c93 100644
--- a/pl/pjparse.c
+++ b/pl/pjparse.c
@@ -108,7 +108,7 @@ static const pjl_envir_var_t pjl_factory_defaults[] = {
there is some unnecessary overlap in the factory default and font
source table. */
static const pjl_fontsource_t pjl_fontsource_table[] = {
- { "I", "fonts/;urwfonts/;/windows/fonts/;/win95/fonts/;/winnt/fonts/" },
+ { "I", "%rom%ttfonts/;fonts/;urwfonts/;/windows/fonts/;/win95/fonts/;/winnt/fonts/" },
{ "C", "CART0/", "" },
{ "C1", "CART1/", "" },
{ "C2", "CART2/", "" },
@@ -338,16 +338,16 @@ pjl_check_font_path(char *path_list, gs_memory_t *mem)
file_enum *fe;
strcpy(tmp_path_and_pattern, dirname);
strcat(tmp_path_and_pattern, pattern);
- fe = gp_enumerate_files_init(tmp_path_and_pattern, strlen(tmp_path_and_pattern), mem);
- if ( (gp_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH) ) == -1 ) {
+ fe = gs_enumerate_files_init(tmp_path_and_pattern, strlen(tmp_path_and_pattern), mem);
+ if ( (gs_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH) ) == -1 ) {
tmp_pathp = NULL;
} else {
/* wind through the rest of the files. This should close
things up as well. All we need to do is clean up but
- gp_enumerate_files_close() does not close the current
+ gs_enumerate_files_close() does not close the current
directory */
while ( 1 ) {
- int fstatus = (int)gp_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH);
+ int fstatus = (int)gs_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH);
/* we don't care if the file does not fit (return +1) */
if ( fstatus == -1 )
break;
@@ -568,10 +568,10 @@ pjl_search_for_file(pjl_parser_state_t *pst, char *pathname, char *filename, cha
/* should check length */
strcpy(fontfilename, pathname);
strcat(fontfilename, "/*");
- fe = gp_enumerate_files_init(fontfilename, strlen(fontfilename), pst->mem);
+ fe = gs_enumerate_files_init(fontfilename, strlen(fontfilename), pst->mem);
if ( fe ) {
do {
- uint fstatus = gp_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH);
+ uint fstatus = gs_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH);
/* done */
if ( fstatus == ~(uint)0 )
return 0;
@@ -599,10 +599,10 @@ pjl_fsdirlist(pjl_parser_state_t *pst, char *pathname, int entry, int count)
pjl_parsed_filename_to_string(fontfilename, pathname);
/* if this is a directory add * for the directory listing NB fix */
strcat(fontfilename, "/*");
- fe = gp_enumerate_files_init(fontfilename, strlen(fontfilename), pst->mem);
+ fe = gs_enumerate_files_init(fontfilename, strlen(fontfilename), pst->mem);
if ( fe ) {
do {
- uint fstatus = gp_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH);
+ uint fstatus = gs_enumerate_files_next(fe, fontfilename, PJL_PATH_NAME_LENGTH);
/* done */
if ( fstatus == ~(uint)0 )
return 0;
diff --git a/pl/pllfont.c b/pl/pllfont.c
index bfc95194e..96b241b80 100644
--- a/pl/pllfont.c
+++ b/pl/pllfont.c
@@ -252,11 +252,11 @@ pl_load_built_in_fonts(const char *pathname, gs_memory_t *mem,
strcat( tmp_path_copy, pattern );
/* enumerate all files on the current path */
- fe = gp_enumerate_files_init( tmp_path_copy,
+ fe = gs_enumerate_files_init( tmp_path_copy,
strlen( tmp_path_copy ), mem );
/* loop through the files */
- while ( ( code = gp_enumerate_files_next( fe,
+ while ( ( code = gs_enumerate_files_next( fe,
tmp_path_copy,
sizeof( tmp_path_copy ) ) ) >= 0 ) {
char buffer[1024];