File: gd_strtok.3in

package info (click to toggle)
libgetdata 0.11.0-17
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,144 kB
  • sloc: ansic: 100,814; cpp: 4,843; fortran: 4,548; f90: 2,561; python: 2,406; perl: 2,274; makefile: 1,487; php: 1,465; sh: 86
file content (106 lines) | stat: -rw-r--r-- 3,203 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
.\" gd_strtok.3.  The gd_strtok man page.
.\"
.\" Copyright (C) 2012, 2016 D. V. Wiebe
.\"
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.\"
.\" This file is part of the GetData project.
.\"
.\" Permission is granted to copy, distribute and/or modify this document
.\" under the terms of the GNU Free Documentation License, Version 1.2 or
.\" any later version published by the Free Software Foundation; with no
.\" Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
.\" Texts.  A copy of the license is included in the `COPYING.DOC' file
.\" as part of this distribution.
.\"
.TH gd_strtok 3 "25 December 2016" "Version 0.10.0" "GETDATA"

.SH NAME
gd_strtok \(em tokenise a string using the GetData parser

.SH SYNOPSIS
.SC
.B #include <getdata.h>
.HP
.BI "char *gd_strtok(DIRFILE *" dirfile ", const char *" string );
.EC

.SH DESCRIPTION
The
.FN gd_strtok
function parses a string into a series of tokens according to the rules of the
Dirfile metadata syntax (see dirfile-format(5)).  The first time
.FN gd_strtok
is called, the string to be parsed should be passed in
.ARG string .
The first token will be returned.  In subsequent calls to parse the same string,
.ARG string
should be NULL (as with
.F3 strtok ).
Each time 
.FN gd_strtok
is called like this, the next token is returned.

Operation of the Dirfile tokeniser varies between Dirfile Standards Versions.
The Standards Version used is the current Version of the loaded DIRFILE
.ARG dirfile .
Use
.F3 gd_dirfile_standards
to retrieve or change this value.  Changing the Standards Version of
.ARG dirfile
while parsing a string will affect the parsing of subsequent tokens, but does
not affect tokens already returned.  A copy of the string is cached in the
.ARG dirfile
object.  Calling
.FN gd_strtok
with different
.ARG dirfile s
will parse different strings.

.SH RETURN VALUE
Upon successful completion,
.FN gd_strtok
returns a copy of the first token, if
.ARG string
is non-NULL, or else a subsequent token from the previously specified string,
if
.ARG string
is NULL.  Every non-NULL pointer returned by
.FN gd_strtok
points to a new buffer allocated on the heap.  By default,
.F3 strdup
is used the allocate the buffers, but an alternate memory manager may be
used by calling
.F3 gd_alloc_funcs
before calling this function.  The caller is responsible for deallocating all
these buffers.
.PP
If no more tokens are available, or if an error occurred, NULL is returned.
If an error has occurred, it will also set the dirfile error a non-zero error
value.  Possible error values are:
.DD GD_E_ALLOC
A memory allocation error occurred.
.DD GD_E_ARGUMENT
There was no string to parse (i.e.
.ARG string
was NULL, but no previous call specified a string to parse).
.DD GD_E_BAD_DIRFILE
The supplied dirfile was invalid.
.DD GD_E_FORMAT
A syntax error was found in the string.
.PP
The dirfile error may be retrieved by calling
.F3 gd_error .
A descriptive error string for the last error encountered can be obtained from
a call to
.F3 gd_error_string .

.SH HISTORY
The
.FN gd_strtok
function appeared in GetData-0.8.0.

.SH SEE ALSO
.F3 gd_dirfile_standards ,
.F3 gd_open ,
dirfile-format(5)