From 388f7a1df37afeed0dd120f8091614a7f6dd91ab Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Wed, 18 May 2005 04:28:51 +0000 Subject: Damn, edited this before and lost the update. More data features. Took about 12 patches. svn path=/trunk/; revision=3006 --- pd/src/s_path.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'pd/src/s_path.c') diff --git a/pd/src/s_path.c b/pd/src/s_path.c index bce151f6..076f2822 100644 --- a/pd/src/s_path.c +++ b/pd/src/s_path.c @@ -359,13 +359,13 @@ void open_via_helppath(const char *name, const char *dir) /* Startup file reading for linux and MACOSX. As of 0.38 this will be deprecated in favor of the "settings" mechanism */ +int sys_argparse(int argc, char **argv); + #ifndef MSW #define STARTUPNAME ".pdrc" #define NUMARGS 1000 -int sys_argparse(int argc, char **argv); - int sys_rcfile(void) { FILE* file; @@ -420,7 +420,7 @@ int sys_rcfile(void) } else post("no RC file arguments found"); } - if (sys_argparse(rcargc, rcargv)) + if (sys_argparse(rcargc-1, rcargv+1)) { post("error parsing RC arguments"); return (1); @@ -434,13 +434,12 @@ void sys_doflags( void) int i, beginstring = 0, state = 0, len = strlen(sys_flags->s_name); int rcargc = 0; char *rcargv[MAXPDSTRING]; - if (len > MAXPDSTRING) { post("flags: %s: too long", sys_flags->s_name); return; } - for (i = 0; i < len; i++) + for (i = 0; i < len+1; i++) { int c = sys_flags->s_name[i]; if (state == 0) @@ -464,11 +463,12 @@ void sys_doflags( void) rcargc++; if (rcargc >= MAXPDSTRING) break; + state = 0; } } } if (sys_argparse(rcargc, rcargv)) - post("error parsing RC arguments"); + post("error parsing startup arguments"); } /* undo pdtl_encodedialog. This allows dialogs to send spaces, commas, @@ -480,7 +480,7 @@ t_symbol *sys_decodedialog(t_symbol *s) if (*sp != '+') bug("sys_decodedialog: %s", sp); else sp++; - for (i = 0; i < MAXPDSTRING-1; i++) + for (i = 0; i < MAXPDSTRING-1; i++, sp++) { if (!sp[0]) break; @@ -497,8 +497,8 @@ t_symbol *sys_decodedialog(t_symbol *s) else if (sp[1] == 'd') buf[i] = '$', sp++; else buf[i] = sp[0]; - sp++; } + else buf[i] = sp[0]; } buf[i] = 0; return (gensym(buf)); -- cgit v1.2.1