MCPcopy Create free account
hub / github.com/coreutils/coreutils / parse_tab_stops

Function parse_tab_stops

src/expand-common.c:136–236  ·  view source on GitHub ↗

Add the comma or blank separated list of tab stops STOPS to the list of tab stops. */

Source from the content-addressed store, hash-verified

134/* Add the comma or blank separated list of tab stops STOPS
135 to the list of tab stops. */
136extern void
137parse_tab_stops (char const *stops)
138{
139 bool have_tabval = false;
140 colno tabval = 0;
141 bool extend_tabval = false;
142 bool increment_tabval = false;
143 char const *num_start = NULL;
144 bool ok = true;
145
146 for (; *stops; stops++)
147 {
148 if (*stops == ',' || isblank (to_uchar (*stops)))
149 {
150 if (have_tabval)
151 {
152 if (extend_tabval)
153 {
154 if (! set_extend_size (tabval))
155 {
156 ok = false;
157 break;
158 }
159 }
160 else if (increment_tabval)
161 {
162 if (! set_increment_size (tabval))
163 {
164 ok = false;
165 break;
166 }
167 }
168 else
169 add_tab_stop (tabval);
170 }
171 have_tabval = false;
172 }
173 else if (*stops == '/')
174 {
175 if (have_tabval)
176 {
177 error (0, 0, _("'/' specifier not at start of number: %s"),
178 quote (stops));
179 ok = false;
180 }
181 extend_tabval = true;
182 increment_tabval = false;
183 }
184 else if (*stops == '+')
185 {
186 if (have_tabval)
187 {
188 error (0, 0, _("'+' specifier not at start of number: %s"),
189 quote (stops));
190 ok = false;
191 }
192 increment_tabval = true;
193 extend_tabval = false;

Callers 2

mainFunction · 0.85
mainFunction · 0.85

Calls 4

to_ucharFunction · 0.85
set_extend_sizeFunction · 0.85
set_increment_sizeFunction · 0.85
add_tab_stopFunction · 0.85

Tested by

no test coverage detected