123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- diff -up gutenprint-5.2.6/src/main/gutenprint-internal.h.postscriptdriver gutenprint-5.2.6/src/main/gutenprint-internal.h
- --- gutenprint-5.2.6/src/main/gutenprint-internal.h.postscriptdriver 2010-08-04 02:33:56.000000000 +0200
- +++ gutenprint-5.2.6/src/main/gutenprint-internal.h 2010-08-11 16:11:19.000000000 +0200
- @@ -56,6 +56,8 @@ extern void stpi_init_printer(void);
- #define BUFFER_FLAG_FLIP_X 0x1
- #define BUFFER_FLAG_FLIP_Y 0x2
- extern stp_image_t* stpi_buffer_image(stp_image_t* image, unsigned int flags);
- +extern stp_list_t *stp_paths_copy_with_prefix(stp_list_t* list,
- + const char *prefix);
-
- #define STPI_ASSERT(x,v) \
- do \
- diff -up gutenprint-5.2.6/src/main/module.c.postscriptdriver gutenprint-5.2.6/src/main/module.c
- --- gutenprint-5.2.6/src/main/module.c.postscriptdriver 2006-09-30 17:02:59.000000000 +0200
- +++ gutenprint-5.2.6/src/main/module.c 2010-08-11 16:13:43.000000000 +0200
- @@ -151,12 +151,20 @@ int stp_module_load(void)
- }
- else
- {
- + const char *prefix = getenv("DESTDIR");
- #ifdef USE_LTDL
- stp_path_split(dir_list, getenv("LTDL_LIBRARY_PATH"));
- stp_path_split(dir_list, lt_dlgetsearchpath());
- #else
- stp_path_split(dir_list, PKGMODULEDIR);
- #endif
- + if (prefix)
- + {
- + stp_list_t *prefix_list;
- + prefix_list = stp_paths_copy_with_prefix(dir_list, prefix);
- + stp_list_destroy(dir_list);
- + dir_list = prefix_list;
- + }
- }
- #ifdef USE_LTDL
- file_list = stp_path_search(dir_list, ".la");
- diff -up gutenprint-5.2.6/src/main/path.c.postscriptdriver gutenprint-5.2.6/src/main/path.c
- --- gutenprint-5.2.6/src/main/path.c.postscriptdriver 2008-06-01 16:41:18.000000000 +0200
- +++ gutenprint-5.2.6/src/main/path.c 2010-08-11 16:13:43.000000000 +0200
- @@ -158,7 +158,17 @@ stpi_data_path(void)
- if (getenv("STP_DATA_PATH"))
- stp_path_split(dir_list, getenv("STP_DATA_PATH"));
- else
- - stp_path_split(dir_list, PKGXMLDATADIR);
- + {
- + const char *prefix = getenv("DESTDIR");
- + stp_path_split(dir_list, PKGXMLDATADIR);
- + if (prefix)
- + {
- + stp_list_t *prefix_list;
- + prefix_list = stp_paths_copy_with_prefix(dir_list, prefix);
- + stp_list_destroy(dir_list);
- + dir_list = prefix_list;
- + }
- + }
- return dir_list;
- }
-
- @@ -226,6 +236,40 @@ stp_path_split(stp_list_t *list, /* List
- }
- }
-
- +/*
- + * Split a PATH-type string (colon-delimited) into separate
- + * directories.
- + */
- +stp_list_t *
- +stp_paths_copy_with_prefix(stp_list_t *list, /* List to add prefix to */
- + const char *prefix) /* Prefix to add */
- +{
- + stp_list_t *new_list;
- + stp_list_item_t *item;
- + int prefixlen = strlen (prefix);
- + if (!(new_list = stp_list_create()))
- + return;
- +
- + item = stp_list_get_start (list);
- + while (item)
- + {
- + const char *data;
- + char *new_data;
- + int len;
- + data = stp_list_item_get_data (item);
- + len = strlen (data);
- + new_data = (char *) stp_malloc(prefixlen + 1 + len + 1);
- + strncpy(new_data, prefix, prefixlen);
- + new_data[prefixlen] = '/';
- + strcpy(new_data + prefixlen + 1, data);
- + stp_list_item_create(new_list, NULL, new_data);
- +
- + item = stp_list_item_next (item);
- + }
- +
- + return new_list;
- +}
- +
- /* Adapted from GNU libc <dirent.h>
- These macros extract size information from a `struct dirent *'.
- They may evaluate their argument multiple times, so it must not
|