[Initng-svn] r1968 - in initng: initfiles/debug src
svn at initng.thinktux.net
svn at initng.thinktux.net
Mon Nov 7 02:00:42 CET 2005
Author: jimmy
Date: Mon Nov 7 02:00:41 2005
New Revision: 1968
Modified:
initng/initfiles/debug/bug197.ii
initng/src/initng_string_tools.c
Log:
Fixed bug 197.
Modified: initng/initfiles/debug/bug197.ii
==============================================================================
--- initng/initfiles/debug/bug197.ii (original)
+++ initng/initfiles/debug/bug197.ii Mon Nov 7 02:00:41 2005
@@ -1,9 +1,9 @@
-service daemon/bug197/tty1 {
- daemon = /bin/echo
- daemon_args = "Here should be tty1 - but it isn't!"
+service debug/bug197/tty1 {
+ start = /bin/echo
+ start_args = "Here should be tty1 - but it isn't!"
}
-service daemon/bug197/* {
- daemon = /bin/echo
- daemon_args = $NAME
+service debug/bug197/* {
+ start = /bin/echo
+ start_args = $NAME
}
Modified: initng/src/initng_string_tools.c
==============================================================================
--- initng/src/initng_string_tools.c (original)
+++ initng/src/initng_string_tools.c Mon Nov 7 02:00:41 2005
@@ -149,34 +149,41 @@
/* skip beginning first spaces */
JUMP_SPACES(*string);
+ if(!(*string)[0] || (*string)[0]=='\n')
+ return(NULL);
- /* count tokens */
- if (*(string)[0] == '"')
+ /* handle '"' chars */
+ if((*string)[0]=='"')
{
- (*string)++;
- while ((*string)[i] != '\0' &&
- (*string)[i] != '"' &&
- (*string)[i] != '\n' &&
- (*string)[i] != ',' && (*string)[i] != ';')
- i++;
- }
- else
- while ((*string)[i] != '\0' &&
- (*string)[i] != ' ' &&
- (*string)[i] != '\t' &&
- (*string)[i] != '\n' && (*string)[i] != ','
- && (*string)[i] != ';')
- i++;
-
- if (!i)
- return (NULL);
+ (*string)++;
+ i=strcspn(*string, "\"");
+ td=i_strndup(*string, i);
+ (*string)+=i;
+ if(*string[0]=='"')
+ (*string)++;
+ return(td);
+ }
+
+ /* handle '{' '}' chars */
+ if((*string)[0]=='{')
+ {
+ (*string)++;
+ i=strcspn(*string, "}");
+ td=i_strndup(*string, i);
+ (*string)+=i;
+ if(*string[0]=='}')
+ (*string)++;
+ return(td);
+ }
+
+ /* or copy until space tab newline, ; or , */
+ i=strcspn(*string, " \t\n;,");
+ if(i<1)
+ return(NULL);
/* copy string */
td = i_strndup(*string, i);
(*string) += i;
-
- if ((*string)[0] == '"')
- (*string)++;
return (td);
}
@@ -191,31 +198,43 @@
assert(string);
- /* count tokens */
- if ((*string)[0] == '"')
- {
- (*string)++;
- while ((*string)[i] != '\0' &&
- (*string)[i] != '"' &&
- (*string)[i] != '\n' && (*string)[i] != ';')
- i++;
- }
- else
- while ((*string)[i] != '\0' &&
- (*string)[i] != '\n' && (*string)[i] != ';')
- i++;
+ /* skip beginning first spaces */
+ JUMP_SPACES(*string);
+ if(!(*string)[0] || (*string)[0]=='\n')
+ return(NULL);
- if (!i)
- return (NULL);
+ /* handle '"' chars */
+ if((*string)[0]=='"')
+ {
+ (*string)++;
+ i=strcspn(*string, "\"");
+ td=i_strndup(*string, i);
+ (*string)+=i;
+ if(*string[0]=='"')
+ (*string)++;
+ return(td);
+ }
+
+ /* handle '{' '}' chars */
+ if((*string)[0]=='{')
+ {
+ (*string)++;
+ i=strcspn(*string, "}");
+ td=i_strndup(*string, i);
+ (*string)+=i;
+ if(*string[0]=='}')
+ (*string)++;
+ return(td);
+ }
+
+ /* or copy until space tab newline, ; or , */
+ i=strcspn(*string, "\n;");
+ if(i<1)
+ return(NULL);
/* copy string */
td = i_strndup(*string, i);
(*string) += i;
-
- /* if this is a "line", don't leave an '"' */
- if ((*string)[0] == '"')
- (*string) += i;
-
return (td);
}
More information about the Initng-svn
mailing list