From 7760c8d054f739c5d891e9da5e89026415ba2fb3 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 16 Nov 2005 05:36:52 +0000 Subject: a quick hack to allow + - * . ^ in setup functions svn path=/trunk/; revision=3932 --- .../darwin_app/patches/special_chars_hack.patch | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 packages/darwin_app/patches/special_chars_hack.patch (limited to 'packages/darwin_app/patches/special_chars_hack.patch') diff --git a/packages/darwin_app/patches/special_chars_hack.patch b/packages/darwin_app/patches/special_chars_hack.patch new file mode 100644 index 00000000..63effe65 --- /dev/null +++ b/packages/darwin_app/patches/special_chars_hack.patch @@ -0,0 +1,58 @@ +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 15 Nov 2005 22:28:41 -0000 +@@ -49,7 +49,7 @@ + int sys_load_lib(char *dirname, char *classname) + { + char symname[MAXPDSTRING], filename[MAXPDSTRING], dirbuf[MAXPDSTRING], +- classname2[MAXPDSTRING], *nameptr, *lastdot; ++ classname2[MAXPDSTRING], *nameptr, *lastdot, tmptildestr[MAXPDSTRING]; + void *dlobj; + t_xxx makeout = NULL; + int fd; +@@ -96,9 +96,40 @@ + #else + strcpy(symname, nameptr); + #endif ++ /* ++ * this is a quick hack to get the matrix externals working as single ++ * files. This should be done with hex translation of special characters ++ * ++ */ + /* if the last character is a tilde, replace with "_tilde" */ + if (symname[strlen(symname) - 1] == '~') +- strcpy(symname + (strlen(symname) - 1), "_tilde"); ++ { ++ strcpy(symname + (strlen(symname) - 1), ""); ++ strcpy(tmptildestr, "_tilde"); ++ } ++ else ++ { ++ strcpy(tmptildestr, ""); ++ } ++ switch (symname[strlen(symname) - 1]) ++ { ++ case '.': ++ strcpy(symname + (strlen(symname) - 1), "_dot"); ++ break; ++ case '+': ++ strcpy(symname + (strlen(symname) - 1), "_plus"); ++ break; ++ case '-': ++ strcpy(symname + (strlen(symname) - 1), "_hyphen"); ++ break; ++ case '*': ++ strcpy(symname + (strlen(symname) - 1), "_asterisk"); ++ break; ++ case '^': ++ strcpy(symname + (strlen(symname) - 1), "_caret"); ++ break; ++ } ++ strcat(symname, tmptildestr); + /* and append _setup to form the C setup function name */ + strcat(symname, "_setup"); + #ifdef DL_OPEN -- cgit v1.2.1