| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mail set sender to djgpp-bounces using -f |
| From: | RayeR <glaux AT centrum DOT cz> |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: I need strtok_r() function |
| Date: | Mon, 17 Oct 2011 12:39:00 -0700 (PDT) |
| Organization: | http://groups.google.com |
| Lines: | 62 |
| Message-ID: | <3533b2fa-8962-47c1-a6a8-373cc0e8a1f3@g7g2000vbv.googlegroups.com> |
| References: | <bf04ff58-89d4-46fe-aaf4-ad5a07eaf8ff AT k35g2000yqh DOT googlegroups DOT com> |
| <8339erwjdk DOT fsf AT gnu DOT org> | |
| NNTP-Posting-Host: | 90.181.199.10 |
| Mime-Version: | 1.0 |
| X-Trace: | posting.google.com 1318880457 5791 127.0.0.1 (17 Oct 2011 19:40:57 GMT) |
| X-Complaints-To: | groups-abuse AT google DOT com |
| NNTP-Posting-Date: | Mon, 17 Oct 2011 19:40:57 +0000 (UTC) |
| Complaints-To: | groups-abuse AT google DOT com |
| Injection-Info: | g7g2000vbv.googlegroups.com; posting-host=90.181.199.10; posting-account=Q0wMHAoAAADjYrghh94FTf6YnbpTqZgp |
| User-Agent: | G2/1.0 |
| X-Google-Web-Client: | true |
| X-Google-Header-Order: | HUALESNKRC |
| X-HTTP-UserAgent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.19) |
| Gecko/20110420 SeaMonkey/2.0.14,gzip(gfe) | |
| Bytes: | 3019 |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
| X-MIME-Autoconverted: | from quoted-printable to 8bit by delorie.com id p9HK01Oq002985 |
| Reply-To: | djgpp AT delorie DOT com |
> Just use strtok. There are no reentrancy issues with DJGPP, since
> it's all single-threaded.
OK, but
char *strtok(char *_s1, const char *_s2);
has only 2 arguments. The 3rd argument is described:
s3 is a value-return parameter used by strtok_r() to record its
progress through s1.
I'm not sure if I could safely delete s3 in function call.
case1
[code]
OPT("asm")
{
p->cpu = isdigit(value[0]) ? atoi(value) :
!strcmp(value, "auto") || atobool(value) ?
x264_cpu_detect() : 0;
if( b_error )
{
char *buf = strdup(value);
char *tok, UNUSED *saveptr=NULL, *init;
b_error = 0;
p->cpu = 0;
for( init=buf; (tok=strtok_r(init, ",", &saveptr));
init=NULL )
{
for( i=0; x264_cpu_names[i].flags && strcasecmp(tok,
x264_cpu_names[i].name); i++ );
p->cpu |= x264_cpu_names[i].flags;
if( !x264_cpu_names[i].flags )
b_error = 1;
}
free( buf );
if( p->cpu & X264_CPU_SSSE3 )
p->cpu |= X264_CPU_SSE2_IS_FAST;
if( p->cpu & X264_CPU_SSE4 )
p->cpu |= X264_CPU_SHUFFLE_IS_FAST;
}
}
[/code]
case2
[code]
while( (tok = strtok_r( p, ",", &saveptr )) )
{
char *val = strchr( tok, '=' );
if( val )
{
*val = '\0';
val++;
}
if( x264_param_parse( z->param, tok, val ) )
{
x264_log( h, X264_LOG_ERROR, "invalid zone param: %s = %s
\n", tok, val );
return -1;
}
p = NULL;
}
[/code]
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |