From e213c74dad16887c4b79aeef047877203e084b07 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Sat, 23 Dec 2006 07:53:31 +0000 Subject: updated patch collection to apply and build against stable_0_40, which is currently at 0.40.1 svn path=/trunk/; revision=7049 --- packages/patches/loaderHEX-0.39-1.patch | 208 -------------------------------- 1 file changed, 208 deletions(-) delete mode 100644 packages/patches/loaderHEX-0.39-1.patch (limited to 'packages/patches/loaderHEX-0.39-1.patch') diff --git a/packages/patches/loaderHEX-0.39-1.patch b/packages/patches/loaderHEX-0.39-1.patch deleted file mode 100644 index d9ebee4d..00000000 --- a/packages/patches/loaderHEX-0.39-1.patch +++ /dev/null @@ -1,208 +0,0 @@ -Index: m_class.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/m_class.c,v -retrieving revision 1.4 -diff -u -w -r1.4 m_class.c ---- m_class.c 28 Nov 2004 21:20:42 -0000 1.4 -+++ m_class.c 17 Nov 2005 23:33:06 -0000 -@@ -16,6 +16,7 @@ - - #include - #include -+#include - - static t_symbol *class_loadsym; /* name under which an extern is invoked */ - static void pd_defaultfloat(t_pd *x, t_float f); -@@ -513,6 +514,42 @@ - t_symbol* pathsearch(t_symbol *s,char* ext); - int pd_setloadingabstraction(t_symbol *sym); - -+ -+/* replace everything but [a-zA-Z0-9_] by "0x%x" */ -+static char*alternative_classname(char*classname) -+{ -+ char *altname=(char*)getbytes(sizeof(char)*MAXPDSTRING); -+ int count=0; -+ int i=0; -+ for(i=0; i=48 && c<=57)|| /* [0-9] */ -+ (c>=65 && c<=90)|| /* [A-Z] */ -+ (c>=97 && c<=122)||/* [a-z] */ -+ (c==95)) /* [_] */ -+ { -+ altname[i]=c; -+ i++; -+ } -+ else /* a "bad" character */ -+ { -+ sprintf(altname+i, "0x%02x", c); -+ i+=4; -+ count++; -+ } -+ classname++; -+ } -+ if(count>0)return altname; -+ /* seems like the given classname is fine as can be */ -+ freebytes(altname, sizeof(char)*MAXPDSTRING); -+ return 0; -+} -+ -+ - /* this routine is called when a new "object" is requested whose class Pd - doesn't know. Pd tries to load it as an extern, then as an abstraction. */ - void new_anything(void *dummy, t_symbol *s, int argc, t_atom *argv) -@@ -521,10 +558,11 @@ - t_symbol *dir = canvas_getcurrentdir(); - int fd; - char dirbuf[MAXPDSTRING], *nameptr; -+ char *altname=alternative_classname(s->s_name); - if (tryingalready) return; - newest = 0; - class_loadsym = s; -- if (sys_load_lib(dir->s_name, s->s_name)) -+ if (sys_load_lib_alt(dir->s_name, s->s_name,altname)) - { - tryingalready = 1; - typedmess(dummy, s, argc, argv); -@@ -535,6 +573,8 @@ - current = s__X.s_thing; - if ((fd = open_via_path(dir->s_name, s->s_name, ".pd", - dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0 || -+ (altname && (fd = open_via_path(dir->s_name, altname, ".pd", -+ dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0) || - (fd = open_via_path(dir->s_name, s->s_name, ".pat", - dirbuf, &nameptr, MAXPDSTRING, 0)) >= 0) - { -Index: s_loader.c -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v -retrieving revision 1.6 -diff -u -w -r1.6 s_loader.c ---- s_loader.c 30 May 2005 03:04:19 -0000 1.6 -+++ s_loader.c 17 Nov 2005 23:33:07 -0000 -@@ -46,10 +46,11 @@ - - void class_set_extern_dir(t_symbol *s); - --int sys_load_lib(char *dirname, char *classname) -+int sys_load_lib_alt(char *dirname, char *classname, char*altname) - { - char symname[MAXPDSTRING], filename[MAXPDSTRING], dirbuf[MAXPDSTRING], -- classname2[MAXPDSTRING], *nameptr, *lastdot; -+ classname2[MAXPDSTRING], *nameptr, *lastdot, -+ altsymname[MAXPDSTRING]; - void *dlobj; - t_xxx makeout = NULL; - int fd; -@@ -72,6 +73,25 @@ - if ((fd = open_via_path(dirname, classname2, sys_dllextent, - dirbuf, &nameptr, MAXPDSTRING, 1)) < 0) - { -+ /* next try (alternative_classname).(sys_dllextent) */ -+ if(altname) -+ { -+ if ((fd = open_via_path(dirname, altname, sys_dllextent, -+ dirbuf, &nameptr, MAXPDSTRING, 1)) < 0) { -+ -+ /* next try (alternative_classname)/(alternative_classname).(sys_dllextent) ... */ -+ strncpy(classname2, altname, MAXPDSTRING); -+ filename[MAXPDSTRING-2] = 0; -+ strcat(classname2, "/"); -+ strncat(classname2, altname, MAXPDSTRING-strlen(classname2)); -+ filename[MAXPDSTRING-1] = 0; -+ if ((fd = open_via_path(dirname, classname2, sys_dllextent, -+ dirbuf, &nameptr, MAXPDSTRING, 1)) < 0) -+ { -+ return 0; -+ } } -+ } -+ else - return (0); - } - } -@@ -93,9 +113,20 @@ - #ifdef MACOSX - strcpy(symname, "_"); - strcat(symname, nameptr); -+ if(altname) -+ { -+ strcpy(altsymname, "_setup_"); -+ strcat(symname, altname); -+ } - #else - strcpy(symname, nameptr); -+ if(altname) -+ { -+ strcpy(altsymname, "setup_"); -+ strcat(altsymname, altname); -+ } - #endif -+ - /* if the last character is a tilde, replace with "_tilde" */ - if (symname[strlen(symname) - 1] == '~') - strcpy(symname + (strlen(symname) - 1), "_tilde"); -@@ -110,6 +141,7 @@ - return (0); - } - makeout = (t_xxx)dlsym(dlobj, symname); -+ if(!makeout)makeout = (t_xxx)dlsym(dlobj, altsymname); - #endif - #ifdef MSW - sys_bashfilename(filename, filename); -@@ -121,6 +153,7 @@ - return (0); - } - makeout = (t_xxx)GetProcAddress(ntdll, symname); -+ if(!makeout)makeout = (t_xxx)GetProcAddress(ntdll, altsymname); - #endif - #ifdef MACOSX - { -@@ -147,6 +180,8 @@ - } - s = NSLookupSymbolInModule(ret, symname); - -+ if(!s)s=NSLookupSymbolInModule(ret, altsymname); -+ - if (s) - makeout = (t_xxx)NSAddressOfSymbol( s); - else makeout = 0; -@@ -156,6 +191,8 @@ - if (!makeout) - { - post("load_object: Symbol \"%s\" not found", symname); -+ if(altname) -+ post("load_object: Symbol \"%s\" not found", altsymname); - class_set_extern_dir(&s_); - return 0; - } -@@ -164,6 +201,10 @@ - return (1); - } - -+int sys_load_lib(char *dirname, char *filename) -+{ -+ return sys_load_lib_alt(dirname, filename, 0); -+} - - - -Index: s_stuff.h -=================================================================== -RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v -retrieving revision 1.7 -diff -u -w -r1.7 s_stuff.h ---- s_stuff.h 16 Jul 2005 01:43:18 -0000 1.7 -+++ s_stuff.h 17 Nov 2005 23:33:07 -0000 -@@ -47,6 +47,7 @@ - - /* s_loader.c */ - int sys_load_lib(char *dirname, char *filename); -+int sys_load_lib_alt(char *dirname, char *filename, char* altname); - - /* s_audio.c */ - -- cgit v1.2.1