File: stringfirstword.c

package info (click to toggle)
yodl 4.04.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,720 kB
  • sloc: ansic: 7,803; perl: 683; cpp: 570; sh: 411; xml: 190; makefile: 164
file content (21 lines) | stat: -rw-r--r-- 651 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "string.ih"

char *string_firstword(char **str)
{
    String ret;

    size_t begin = strspn(*str, " \t");   /* length of initial blanks     */
    size_t end =                          /* length of non blanks beyond  */
                 strcspn(*str + begin, " \t");

    if (!end)                               /* no first word                */
        return 0;

    string_construct(&ret, 0);

    *str += begin;                          /* skip blanks                  */
    string_additerators(&ret, *str, *str + end);
    *str += end;                            /* skip beyond first word       */

    return string_release(&ret);
}