bug-glibc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sscanf broken?


From: Andreas Schwab
Subject: Re: sscanf broken?
Date: 12 Sep 2001 14:20:04 +0200
User-agent: Gnus/5.090003 (Oort Gnus v0.03) Emacs/21.0.106

matt farnsworth <address@hidden> writes:

|> I expected 'sscanf(src,form,*to...)' to parse like a weak regex; but it
|> doesn't!
|> 
|> consider
|>  sscanf("URL http://svr.any.srv mode/1.1\n", 
|>      "URL http://%s mode/%d.%d", 
|>      &host, &maj, &min); == 3 // ok
|> but 
|>  sscanf("URL http://svr.any.srv/resource mode/1.1\n", 
|>      "URL http://%s/%s mode/%d.%d", 
|>      &host, &res, &maj, &min); == 1 // FAIL
|> and 
|>    sscanf("URL http://svr.any.srv /resource mode/1.1\n", 
|>      "URL http://%s /%s mode/%d.%d", 
|>      &host, &res, &maj, &min); == 4 // ok, but wrong params
|> 
|> thus shown
|>    sscanf requires %s to terminate with a <space>

Yes.

|> but I expected
|>    %s<non-s-char> ==> {break on non-s-char}

No.

|> Is this really standard behaviour?

Yes.

|> Does this suck?

No.  Either use %[^/] or write your own parser.

Andreas.

-- 
Andreas Schwab                                  "And now for something
address@hidden                          completely different."
SuSE Labs, SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5



reply via email to

[Prev in Thread] Current Thread [Next in Thread]