diff options
Diffstat (limited to 'audio/timidity++/files/patch-dynamic')
-rw-r--r-- | audio/timidity++/files/patch-dynamic | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/audio/timidity++/files/patch-dynamic b/audio/timidity++/files/patch-dynamic deleted file mode 100644 index 1668d5015786..000000000000 --- a/audio/timidity++/files/patch-dynamic +++ /dev/null @@ -1,230 +0,0 @@ -http://timidity-docs.sourceforge.jp/cgi-bin/kagemai-en/guest.cgi?project=timidity-bugs-en&action=view_report&id=54 - ---- interface/Makefile.in Sun Oct 3 08:39:54 2004 -+++ interface/Makefile.in Thu Sep 22 00:01:34 2005 -@@ -1240,5 +1240,5 @@ - @NEEDDLOPEN_TRUE@install.dynamics: $(dynamic_targets) - @NEEDDLOPEN_TRUE@ test -d $(DESTDIR)$(SHLIB_DIR) || mkdir -p $(DESTDIR)$(SHLIB_DIR) --@NEEDDLOPEN_TRUE@ for f in $(dynamic_targets) ''; do case ".$$f" in .);; *) $(INSTALL_PROGRAM) $$f $(DESTDIR)$(SHLIB_DIR) ; $(INSTALL_DATA) $${f%%$(so)}txt $(DESTDIR)$(SHLIB_DIR);; esac; done -+@NEEDDLOPEN_TRUE@ for f in $(dynamic_targets) ''; do case ".$$f" in .);; *) $(INSTALL_PROGRAM) $$f $(DESTDIR)$(SHLIB_DIR);; esac; done - - @NEEDDLOPEN_TRUE@.c.$(so): ---- timidity/timidity.c Sat Oct 2 06:46:17 2004 -+++ timidity/timidity.c Thu Sep 22 02:32:24 2005 -@@ -386,5 +386,5 @@ - static inline int parse_opt_c(char *); - static inline int parse_opt_D(const char *); --static inline int parse_opt_d(const char *); -+static inline int parse_opt_d(char *); - static inline int parse_opt_E(char *); - static inline int parse_opt_mod_wheel(const char *); -@@ -418,5 +418,5 @@ - #ifdef IA_DYNAMIC - static inline void list_dyna_interface(FILE *, char *, char *); --static inline char *dynamic_interface_info(int); -+static inline const char *dynamic_interface_info(int); - char *dynamic_interface_module(int); - #endif -@@ -501,4 +501,5 @@ - #ifdef IA_DYNAMIC - MAIN_INTERFACE char dynamic_interface_id; -+ControlMode *ctl_load(int id); - #endif /* IA_DYNAMIC */ - -@@ -2929,11 +2930,9 @@ - } - --static inline int parse_opt_d(const char *arg) -+static inline int parse_opt_d(char *arg) - { - /* dynamic lib root */ - #ifdef IA_DYNAMIC -- if (dynamic_lib_root) -- free(dynamic_lib_root); -- dynamic_lib_root = safe_strdup(arg); -+ dynamic_lib_root = arg; - return 0; - #else -@@ -3935,5 +3934,6 @@ - { - URL url; -- char fname[BUFSIZ], *info; -+ char fname[63]; -+ const char *info; - int id; - -@@ -3946,6 +3946,5 @@ - continue; - mark[id] = 1; -- if ((info = dynamic_interface_info(id)) == NULL) -- info = dynamic_interface_module(id); -+ info = dynamic_interface_info(id); - if (info != NULL) - fprintf(fp, " -i%c %s" NLS, id, info); -@@ -3954,39 +3953,27 @@ - } - --static inline char *dynamic_interface_info(int id) -+static inline const char * -+dynamic_interface_info(int id) - { -- static char libinfo[MAXPATHLEN]; -- int fd, n; -- char *nl; -- -- sprintf(libinfo, "%s" PATH_STRING "interface_%c.txt", -- dynamic_lib_root, id); -- if ((fd = open(libinfo, 0)) < 0) -- return NULL; -- n = read(fd, libinfo, sizeof(libinfo) - 1); -- close(fd); -- if (n <= 0) -- return NULL; -- libinfo[n] = '\0'; -- if ((nl = strchr(libinfo, '\n')) == libinfo) -+ ControlMode *actl; -+ -+ actl = ctl_load(id); -+ if (actl == NULL) - return NULL; -- if (nl != NULL) { -- *nl = '\0'; -- if (*(nl - 1) == '\r') -- *(nl - 1) = '\0'; -- } -- return libinfo; -+ -+ return actl->id_name; - } - --char *dynamic_interface_module(int id) -+char * -+dynamic_interface_module(int id) - { -- static char shared_library[MAXPATHLEN]; -- int fd; -+ char *shared_library; - -+ shared_library = malloc(strlen(dynamic_lib_root) + -+ sizeof(PATH_STRING) - 1 + sizeof("interface_X") - 1 + -+ sizeof(SHARED_LIB_EXT) - 1 + 1); -- sprintf(shared_library, "%s" PATH_STRING "interface_%c%s", -- dynamic_lib_root, id, SHARED_LIB_EXT); -+ sprintf(shared_library, "%s" PATH_STRING "interface_%c" SHARED_LIB_EXT, -+ dynamic_lib_root, id); -- if ((fd = open(shared_library, 0)) < 0) -- return NULL; -- close(fd); -+ - return shared_library; - } -@@ -4012,5 +3996,5 @@ - #ifdef IA_DYNAMIC - if (cmp->id_character == dynamic_interface_id -- && dynamic_interface_module(*arg)) { -+ && ctl_load(*arg)) { - /* Dynamic interface loader */ - found = 1; ---- interface/dynamic_c.c Tue Jan 15 05:53:20 2002 -+++ interface/dynamic_c.c Thu Sep 22 01:17:11 2005 -@@ -80,40 +80,66 @@ - } - --static int ctl_open(int using_stdin, int using_stdout) -+ControlMode * -+ctl_load(int id) - { -- ControlMode *(* inferface_loader)(void); -- char *path; -- char buff[256]; -- int id; -- -- if(dynamic_control_mode.opened) -- return 0; -- dynamic_control_mode.opened = 1; -- -- id = dynamic_control_mode.id_character; -- path = dynamic_interface_module(id); -- if(path == NULL) -- { -- fprintf(stderr, "FATAL ERROR: dynamic_c.c: ctl_open()\n"); -- exit(1); -- } -- -- if((libhandle = dl_load_file(path)) == NULL) -- return -1; -- -- sprintf(buff, "interface_%c_loader", id); -- if((inferface_loader = (ControlMode *(*)(void)) -- dl_find_symbol(libhandle, buff)) == NULL) -- return -1; -- -- ctl = inferface_loader(); -- -- ctl->verbosity = dynamic_control_mode.verbosity; -- ctl->trace_playing = dynamic_control_mode.trace_playing; -- ctl->flags = dynamic_control_mode.flags; -- ctl_close_hook = ctl->close; -- ctl->close = dynamic_control_mode.close; /* ctl_close() */ -+ static int last_id; -+ static ControlMode *last_ctl; -+ ControlMode *(* inferface_loader)(void); -+ char *path; -+ char buff[sizeof("interface_%_loader")]; -+ -+ if (last_id == id) -+ return last_ctl; /* success */ -+ if (last_id) { -+ dl_free(libhandle); -+ last_ctl = NULL; -+ } -+ -+ last_id = id; -+ path = dynamic_interface_module(id); -+ if(path == NULL) { -+ fprintf(stderr, "FATAL ERROR: dynamic_c.c: ctl_load()\n"); -+ exit(1); -+ } -+ -+ libhandle = dl_load_file(path); -+ free(path); -+ if (libhandle == NULL) -+ return NULL; -+ -+ sprintf(buff, "interface_%c_loader", id); -+ if((inferface_loader = (ControlMode *(*)(void)) -+ dl_find_symbol(libhandle, buff)) == NULL) { -+ dl_free(libhandle); -+ return NULL; -+ } - -- return ctl->open(using_stdin, using_stdout); -+ last_ctl = inferface_loader(); -+ -+ return last_ctl; -+} -+ -+static int -+ctl_open(int using_stdin, int using_stdout) -+{ -+ int id; -+ ControlMode *newctl; -+ -+ if(dynamic_control_mode.opened) -+ return 0; -+ dynamic_control_mode.opened = 1; -+ -+ id = dynamic_control_mode.id_character; -+ newctl = ctl_load(id); -+ if (newctl == NULL) -+ return 0; -+ -+ ctl = newctl; -+ ctl->verbosity = dynamic_control_mode.verbosity; -+ ctl->trace_playing = dynamic_control_mode.trace_playing; -+ ctl->flags = dynamic_control_mode.flags; -+ ctl_close_hook = ctl->close; -+ ctl->close = dynamic_control_mode.close; /* ctl_close() */ -+ return ctl->open(using_stdin, using_stdout); - } - |