Rev 3425 | Rev 4377 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3425 | Rev 3437 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 | /* |
1 | /* |
| 2 | * Copyright (c) 2005 Martin Decky |
2 | * Copyright (c) 2005 Martin Decky |
| - | 3 | * Copyright (C) 1998 by Wes Peters <wes@softweyr.com> |
|
| - | 4 | * Copyright (c) 1988, 1993 The Regents of the University of California. |
|
| 3 | * All rights reserved. |
5 | * All rights reserved. |
| 4 | * |
6 | * |
| 5 | * Redistribution and use in source and binary forms, with or without |
7 | * Redistribution and use in source and binary forms, with or without |
| 6 | * modification, are permitted provided that the following conditions |
8 | * modification, are permitted provided that the following conditions |
| 7 | * are met: |
9 | * are met: |
| Line 394... | Line 396... | ||
| 394 | return (char *) NULL; |
396 | return (char *) NULL; |
| 395 | 397 | ||
| 396 | return (char *) memcpy(ret, s1, len); |
398 | return (char *) memcpy(ret, s1, len); |
| 397 | } |
399 | } |
| 398 | 400 | ||
| - | 401 | /* Ported from FBSD strtok.c 8.1 (Berkeley) 6/4/93 */ |
|
| - | 402 | char * strtok_r(char *s, const char *delim, char **last) |
|
| - | 403 | { |
|
| - | 404 | char *spanp, *tok; |
|
| - | 405 | int c, sc; |
|
| - | 406 | ||
| - | 407 | if (s == NULL && (s = *last) == NULL) |
|
| - | 408 | return (NULL); |
|
| - | 409 | ||
| - | 410 | cont: |
|
| - | 411 | c = *s++; |
|
| - | 412 | for (spanp = (char *)delim; (sc = *spanp++) != 0;) { |
|
| - | 413 | if (c == sc) |
|
| - | 414 | goto cont; |
|
| - | 415 | } |
|
| - | 416 | ||
| - | 417 | if (c == 0) { /* no non-delimiter characters */ |
|
| - | 418 | *last = NULL; |
|
| - | 419 | return (NULL); |
|
| - | 420 | } |
|
| - | 421 | ||
| - | 422 | tok = s - 1; |
|
| - | 423 | ||
| - | 424 | for (;;) { |
|
| - | 425 | c = *s++; |
|
| - | 426 | spanp = (char *)delim; |
|
| - | 427 | do { |
|
| - | 428 | if ((sc = *spanp++) == c) { |
|
| - | 429 | if (c == 0) |
|
| - | 430 | s = NULL; |
|
| - | 431 | else |
|
| - | 432 | s[-1] = '\0'; |
|
| - | 433 | *last = s; |
|
| - | 434 | return (tok); |
|
| - | 435 | } |
|
| - | 436 | } while (sc != 0); |
|
| - | 437 | } |
|
| - | 438 | } |
|
| - | 439 | ||
| - | 440 | /* Ported from FBSD strtok.c 8.1 (Berkeley) 6/4/93 */ |
|
| - | 441 | char * strtok(char *s, const char *delim) |
|
| - | 442 | { |
|
| - | 443 | static char *last; |
|
| - | 444 | ||
| - | 445 | return (strtok_r(s, delim, &last)); |
|
| - | 446 | } |
|
| - | 447 | ||
| 399 | /** @} |
448 | /** @} |
| 400 | */ |
449 | */ |