lkml.org 
[lkml]   [2004]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] handle quoted module parameters
Here's a patch with better description.


Fix module parameter quote handling.
Module parameter strings (with spaces) are quoted like so:
"modprm=this test"
and not like this:
modprm="this test"

Signed-off-by: Randy Dunlap <rddunlap@osdl.org>

diffstat:=
kernel/params.c | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)


--
~Randy

diff -Naurp ./kernel/params.c~modprm_quoted ./kernel/params.c
--- ./kernel/params.c~modprm_quoted 2004-11-11 15:13:26.000000000 -0800
+++ ./kernel/params.c 2004-11-11 19:42:36.714124784 -0800
@@ -77,10 +77,16 @@ static int parse_one(char *param,
static char *next_arg(char *args, char **param, char **val)
{
unsigned int i, equals = 0;
- int in_quote = 0;
+ int in_quote = 0, quoted = 0;
+ char *next;

/* Chew any extra spaces */
while (*args == ' ') args++;
+ if (*args == '"') {
+ args++;
+ in_quote = 1;
+ quoted = 1;
+ }

for (i = 0; args[i]; i++) {
if (args[i] == ' ' && !in_quote)
@@ -106,13 +112,16 @@ static char *next_arg(char *args, char *
if (args[i-1] == '"')
args[i-1] = '\0';
}
+ if (quoted && args[i-1] == '"')
+ args[i-1] = '\0';
}

if (args[i]) {
args[i] = '\0';
- return args + i + 1;
+ next = args + i + 1;
} else
- return args + i;
+ next = args + i;
+ return next;
}

/* Args looks like "foo=bar,bar2 baz=fuz wiz". */
\
 
 \ /
  Last update: 2005-03-22 14:07    [W:0.057 / U:1.704 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site