1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
--- src/gdevdmpr.c.orig Tue May 13 20:43:37 1997
+++ src/gdevdmpr.c Thu Jun 9 02:52:25 2005
@@ -41,7 +41,7 @@
/* include library header. */
#include "dviprlib.h"
-extern FILE *lib_fopen(P1(const char *));
+extern FILE *lib_fopen(const char *);
#define LOCAL_DEBUG 0
@@ -87,12 +87,12 @@
private dev_proc_close_device(gdev_dmprt_close);
/* declarations of sub functions to get printer properties. */
-private void gdev_dmprt_init_printer_props(P1(gx_device_dmprt *));
-private int gdev_dmprt_get_printer_props(P2(gx_device_dmprt *,char *));
-private int gdev_dmprt_check_code_props(P2(byte * ,int ));
-private FILE *gdev_dmprt_dviprt_lib_fopen(P2(const char *,char *));
+private void gdev_dmprt_init_printer_props(gx_device_dmprt *);
+private int gdev_dmprt_get_printer_props(gx_device_dmprt *,char *);
+private int gdev_dmprt_check_code_props(byte * ,int );
+private FILE *gdev_dmprt_dviprt_lib_fopen(const char *,char *);
-private int gdev_dmprt_error_no_dviprt_to_gs(P1(int ));
+private int gdev_dmprt_error_no_dviprt_to_gs(int );
/* The device descriptor */
gx_device_procs prn_dmprt_procs = {
@@ -833,6 +833,7 @@
return code;
}
+private const char * gp_file_name_concat_string(const char *, unsigned);
private FILE *
gdev_dmprt_dviprt_lib_fopen(const char *fnamebase,char *fname)
{
@@ -845,9 +846,7 @@
env = getenv("TEXCFG");
if (env) {
strcpy(fname,env);
- strcat(fname,
- gp_file_name_concat_string(env,strlen(env),fname,strlen(fnamebase)));
- strcat(fname,fnamebase);
+ strcat(fname, gp_file_name_concat_string(env,strlen(env)));
fp = fopen(fname,gp_fmode_rb);
}
}
@@ -867,4 +866,15 @@
default:
return -1;
}
+}
+
+/* Answer the string to be used for combining a directory/device prefix */
+/* with a base file name. The prefix directory/device is examined to */
+/* determine if a separator is needed and may return an empty string */
+private const char *
+gp_file_name_concat_string(const char *prefix, unsigned plen)
+{
+ if (plen > 0 && prefix[plen - 1] == '/')
+ return "";
+ return "/";
}
|