Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | _rl_search_cxt *_rl_nscxt = 0; | - |
21 | | - |
22 | extern HIST_ENTRY *_rl_saved_line_for_history; | - |
23 | | - |
24 | | - |
25 | extern void _rl_free_history_entry (HIST_ENTRY *); | - |
26 | | - |
27 | static char *noninc_search_string = (char *) | - |
28 | ((void *)0) | - |
29 | ; | - |
30 | static int noninc_history_pos; | - |
31 | | - |
32 | static char *prev_line_found = (char *) | - |
33 | ((void *)0) | - |
34 | ; | - |
35 | | - |
36 | static int rl_history_search_len; | - |
37 | static int rl_history_search_pos; | - |
38 | static int rl_history_search_flags; | - |
39 | | - |
40 | static char *history_search_string; | - |
41 | static int history_string_size; | - |
42 | | - |
43 | static void make_history_line_current (HIST_ENTRY *); | - |
44 | static int noninc_search_from_pos (char *, int, int, int, int *); | - |
45 | static int noninc_dosearch (char *, int, int); | - |
46 | static int noninc_search (int, int); | - |
47 | static int rl_history_search_internal (int, int); | - |
48 | static void rl_history_search_reinit (int); | - |
49 | | - |
50 | static _rl_search_cxt *_rl_nsearch_init (int, int); | - |
51 | static void _rl_nsearch_abort (_rl_search_cxt *); | - |
52 | static int _rl_nsearch_dispatch (_rl_search_cxt *, int); | - |
53 | | - |
54 | | - |
55 | | - |
56 | | - |
57 | static void | - |
58 | make_history_line_current (HIST_ENTRY *entry) | - |
59 | { | - |
60 | _rl_replace_text (entry->line, 0, rl_end); | - |
61 | _rl_fix_point (1); | - |
62 | | - |
63 | if (rl_editing_mode == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
64 | | - |
65 | | - |
66 | | - |
67 | | - |
68 | rl_free_undo_list (); never executed: rl_free_undo_list (); | 0 |
69 | | - |
70 | | - |
71 | if (_rl_saved_line_for_historyTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
72 | _rl_free_history_entry (_rl_saved_line_for_history); never executed: _rl_free_history_entry (_rl_saved_line_for_history); | 0 |
73 | _rl_saved_line_for_history = (HIST_ENTRY *) | - |
74 | ((void *)0) | - |
75 | ; | - |
76 | } never executed: end of block | 0 |
77 | | - |
78 | | - |
79 | | - |
80 | | - |
81 | | - |
82 | | - |
83 | static int | - |
84 | noninc_search_from_pos (char *string, int pos, int dir, int flags, int *ncp) | - |
85 | { | - |
86 | int ret, old, sflags; | - |
87 | char *s; | - |
88 | | - |
89 | if (pos < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
90 | return never executed: return -1; -1;never executed: return -1; | 0 |
91 | | - |
92 | old = where_history (); | - |
93 | if (history_set_pos (pos) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
94 | return never executed: return -1; -1;never executed: return -1; | 0 |
95 | | - |
96 | (rl_readline_state |= (0x0000200)); | - |
97 | | - |
98 | | - |
99 | if (flags & 0x10TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
100 | { | - |
101 | s = string; | - |
102 | sflags = 0; | - |
103 | if (*TRUE | never evaluated | FALSE | never evaluated |
s == '^'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
104 | { | - |
105 | sflags |= 0x01; | - |
106 | s++; | - |
107 | } never executed: end of block | 0 |
108 | ret = _hs_history_patsearch (string, dir, sflags); | - |
109 | } never executed: end of block | 0 |
110 | else if (*TRUE | never evaluated | FALSE | never evaluated |
string == '^'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
111 | ret = history_search_prefix (string + 1, dir); never executed: ret = history_search_prefix (string + 1, dir); | 0 |
112 | else | - |
113 | ret = history_search (string, dir); never executed: ret = history_search (string, dir); | 0 |
114 | (rl_readline_state &= ~(0x0000200)); | - |
115 | | - |
116 | if (ncpTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
117 | * never executed: *ncp = ret; ncp = ret;never executed: *ncp = ret; | 0 |
118 | | - |
119 | if (ret != -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
120 | ret = where_history (); never executed: ret = where_history (); | 0 |
121 | | - |
122 | history_set_pos (old); | - |
123 | return never executed: return (ret); (ret);never executed: return (ret); | 0 |
124 | } | - |
125 | | - |
126 | | - |
127 | | - |
128 | | - |
129 | static int | - |
130 | noninc_dosearch (char *string, int dir, int flags) | - |
131 | { | - |
132 | int oldpos, pos; | - |
133 | HIST_ENTRY *entry; | - |
134 | | - |
135 | if (string == 0TRUE | never evaluated | FALSE | never evaluated |
|| *TRUE | never evaluated | FALSE | never evaluated |
string == '\0'TRUE | never evaluated | FALSE | never evaluated |
|| noninc_history_pos < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
136 | { | - |
137 | rl_ding (); | - |
138 | return never executed: return 0; 0;never executed: return 0; | 0 |
139 | } | - |
140 | | - |
141 | pos = noninc_search_from_pos (string, noninc_history_pos + dir, dir, flags, (int *)0); | - |
142 | if (pos == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
143 | { | - |
144 | | - |
145 | rl_maybe_unsave_line (); | - |
146 | rl_clear_message (); | - |
147 | rl_point = 0; | - |
148 | rl_ding (); | - |
149 | return never executed: return 0; 0;never executed: return 0; | 0 |
150 | } | - |
151 | | - |
152 | noninc_history_pos = pos; | - |
153 | | - |
154 | oldpos = where_history (); | - |
155 | history_set_pos (noninc_history_pos); | - |
156 | entry = current_history (); | - |
157 | | - |
158 | | - |
159 | if (rl_editing_mode != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
160 | | - |
161 | history_set_pos (oldpos); never executed: history_set_pos (oldpos); | 0 |
162 | | - |
163 | make_history_line_current (entry); | - |
164 | | - |
165 | rl_point = 0; | - |
166 | rl_mark = rl_end; | - |
167 | | - |
168 | rl_clear_message (); | - |
169 | return never executed: return 1; 1;never executed: return 1; | 0 |
170 | } | - |
171 | | - |
172 | static _rl_search_cxt * | - |
173 | _rl_nsearch_init (int dir, int pchar) | - |
174 | { | - |
175 | _rl_search_cxt *cxt; | - |
176 | char *p; | - |
177 | | - |
178 | cxt = _rl_scxt_alloc (0x02, 0); | - |
179 | if (dir < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
180 | cxt->sflags |= 0x01; never executed: cxt->sflags |= 0x01; | 0 |
181 | | - |
182 | if ((rl_editing_mode == 0TRUE | never evaluated | FALSE | never evaluated |
&& _rl_keymap == vi_movement_keymapTRUE | never evaluated | FALSE | never evaluated |
) && (pchar == '?'TRUE | never evaluated | FALSE | never evaluated |
|| pchar == '/'TRUE | never evaluated | FALSE | never evaluated |
)) | 0 |
183 | cxt->sflags |= 0x10; never executed: cxt->sflags |= 0x10; | 0 |
184 | | - |
185 | | - |
186 | cxt->direction = dir; | - |
187 | cxt->history_pos = cxt->save_line; | - |
188 | | - |
189 | rl_maybe_save_line (); | - |
190 | | - |
191 | | - |
192 | | - |
193 | | - |
194 | rl_undo_list = 0; | - |
195 | | - |
196 | | - |
197 | rl_line_buffer[0] = 0; | - |
198 | rl_end = rl_point = 0; | - |
199 | | - |
200 | p = _rl_make_prompt_for_search (pchar ? pchar : ':'); | - |
201 | rl_message ("%s", p); | - |
202 | xfree (p); | - |
203 | | - |
204 | (rl_readline_state |= (0x0000100)); | - |
205 | | - |
206 | _rl_nscxt = cxt; | - |
207 | | - |
208 | return never executed: return cxt; cxt;never executed: return cxt; | 0 |
209 | } | - |
210 | | - |
211 | int | - |
212 | _rl_nsearch_cleanup (_rl_search_cxt *cxt, int r) | - |
213 | { | - |
214 | _rl_scxt_dispose (cxt, 0); | - |
215 | _rl_nscxt = 0; | - |
216 | | - |
217 | (rl_readline_state &= ~(0x0000100)); | - |
218 | | - |
219 | return never executed: return (r != 1); (r != 1);never executed: return (r != 1); | 0 |
220 | } | - |
221 | | - |
222 | static void | - |
223 | _rl_nsearch_abort (_rl_search_cxt *cxt) | - |
224 | { | - |
225 | rl_maybe_unsave_line (); | - |
226 | rl_clear_message (); | - |
227 | rl_point = cxt->save_point; | - |
228 | rl_mark = cxt->save_mark; | - |
229 | rl_restore_prompt (); | - |
230 | | - |
231 | (rl_readline_state &= ~(0x0000100)); | - |
232 | } never executed: end of block | 0 |
233 | | - |
234 | | - |
235 | | - |
236 | | - |
237 | static int | - |
238 | _rl_nsearch_dispatch (_rl_search_cxt *cxt, int c) | - |
239 | { | - |
240 | if (c < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
241 | c = (('C') & 0x1f); never executed: c = (('C') & 0x1f); | 0 |
242 | | - |
243 | switch (c) | - |
244 | { | - |
245 | case never executed: case (('W') & 0x1f): (('W') & 0x1f):never executed: case (('W') & 0x1f): | 0 |
246 | rl_unix_word_rubout (1, c); | - |
247 | break; never executed: break; | 0 |
248 | | - |
249 | case never executed: case (('U') & 0x1f): (('U') & 0x1f):never executed: case (('U') & 0x1f): | 0 |
250 | rl_unix_line_discard (1, c); | - |
251 | break; never executed: break; | 0 |
252 | | - |
253 | case never executed: case (('M') & 0x1f): (('M') & 0x1f):never executed: case (('M') & 0x1f): | 0 |
254 | case never executed: case '\n': '\n':never executed: case '\n': | 0 |
255 | return never executed: return 0; 0;never executed: return 0; | 0 |
256 | | - |
257 | case never executed: case (('H') & 0x1f): (('H') & 0x1f):never executed: case (('H') & 0x1f): | 0 |
258 | case never executed: case 0x7f: 0x7f:never executed: case 0x7f: | 0 |
259 | if (rl_point == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
260 | { | - |
261 | _rl_nsearch_abort (cxt); | - |
262 | return never executed: return -1; -1;never executed: return -1; | 0 |
263 | } | - |
264 | _rl_rubout_char (1, c); | - |
265 | break; never executed: break; | 0 |
266 | | - |
267 | case never executed: case (('C') & 0x1f): (('C') & 0x1f):never executed: case (('C') & 0x1f): | 0 |
268 | case never executed: case (('G') & 0x1f): (('G') & 0x1f):never executed: case (('G') & 0x1f): | 0 |
269 | rl_ding (); | - |
270 | _rl_nsearch_abort (cxt); | - |
271 | return never executed: return -1; -1;never executed: return -1; | 0 |
272 | | - |
273 | default never executed: default: :never executed: default: | 0 |
274 | | - |
275 | if ( | - |
276 | (TRUE | never evaluated | FALSE | never evaluated |
__ctype_get_mb_cur_max ()) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
277 | > 1TRUE | never evaluated | FALSE | never evaluated |
&& rl_byte_oriented == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
278 | rl_insert_text (cxt->mb); never executed: rl_insert_text (cxt->mb); | 0 |
279 | else | - |
280 | | - |
281 | _rl_insert_char (1, c); never executed: _rl_insert_char (1, c); | 0 |
282 | break; never executed: break; | 0 |
283 | } | - |
284 | | - |
285 | (*rl_redisplay_function) (); | - |
286 | return never executed: return 1; 1;never executed: return 1; | 0 |
287 | } | - |
288 | | - |
289 | | - |
290 | | - |
291 | | - |
292 | | - |
293 | static int | - |
294 | _rl_nsearch_dosearch (_rl_search_cxt *cxt) | - |
295 | { | - |
296 | rl_mark = cxt->save_mark; | - |
297 | | - |
298 | | - |
299 | | - |
300 | | - |
301 | if (rl_point == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
302 | { | - |
303 | if (noninc_search_string == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
304 | { | - |
305 | rl_ding (); | - |
306 | rl_restore_prompt (); | - |
307 | (rl_readline_state &= ~(0x0000100)); | - |
308 | return never executed: return -1; -1;never executed: return -1; | 0 |
309 | } | - |
310 | } never executed: end of block | 0 |
311 | else | - |
312 | { | - |
313 | | - |
314 | noninc_history_pos = cxt->save_line; | - |
315 | if (noninc_search_stringTRUE | never evaluated | FALSE | never evaluated |
) free (noninc_search_string);never executed: free (noninc_search_string); | 0 |
316 | noninc_search_string = strcpy ((char *)xmalloc (1 + strlen (rl_line_buffer)), (rl_line_buffer)); | - |
317 | | - |
318 | | - |
319 | | - |
320 | | - |
321 | | - |
322 | | - |
323 | rl_free_undo_list (); | - |
324 | } never executed: end of block | 0 |
325 | | - |
326 | rl_restore_prompt (); | - |
327 | return never executed: return (noninc_dosearch (noninc_search_string, cxt->direction, cxt->sflags&0x10)); (noninc_dosearch (noninc_search_string, cxt->direction, cxt->sflags&0x10));never executed: return (noninc_dosearch (noninc_search_string, cxt->direction, cxt->sflags&0x10)); | 0 |
328 | } | - |
329 | | - |
330 | | - |
331 | | - |
332 | | - |
333 | | - |
334 | | - |
335 | static int | - |
336 | noninc_search (int dir, int pchar) | - |
337 | { | - |
338 | _rl_search_cxt *cxt; | - |
339 | int c, r; | - |
340 | | - |
341 | cxt = _rl_nsearch_init (dir, pchar); | - |
342 | | - |
343 | if ((TRUE | never evaluated | FALSE | never evaluated |
rl_readline_state & (0x0080000))TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
344 | return never executed: return (0); (0);never executed: return (0); | 0 |
345 | | - |
346 | | - |
347 | r = 0; | - |
348 | while (1) | - |
349 | { | - |
350 | c = _rl_search_getchar (cxt); | - |
351 | | - |
352 | if (c < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
353 | { | - |
354 | _rl_nsearch_abort (cxt); | - |
355 | return never executed: return 1; 1;never executed: return 1; | 0 |
356 | } | - |
357 | | - |
358 | if (c == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
359 | break; never executed: break; | 0 |
360 | | - |
361 | r = _rl_nsearch_dispatch (cxt, c); | - |
362 | if (r < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
363 | return never executed: return 1; 1;never executed: return 1; | 0 |
364 | else if (r == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
365 | break; never executed: break; | 0 |
366 | } never executed: end of block | 0 |
367 | | - |
368 | r = _rl_nsearch_dosearch (cxt); | - |
369 | return never executed: return ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1)); ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1));never executed: return ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1)); | 0 |
370 | } | - |
371 | | - |
372 | | - |
373 | | - |
374 | int | - |
375 | rl_noninc_forward_search (int count, int key) | - |
376 | { | - |
377 | return never executed: return noninc_search (1, (key == '?') ? '?' : 0); noninc_search (1, (key == '?') ? '?' : 0);never executed: return noninc_search (1, (key == '?') ? '?' : 0); | 0 |
378 | } | - |
379 | | - |
380 | | - |
381 | | - |
382 | int | - |
383 | rl_noninc_reverse_search (int count, int key) | - |
384 | { | - |
385 | return never executed: return noninc_search (-1, (key == '/') ? '/' : 0); noninc_search (-1, (key == '/') ? '/' : 0);never executed: return noninc_search (-1, (key == '/') ? '/' : 0); | 0 |
386 | } | - |
387 | | - |
388 | | - |
389 | | - |
390 | | - |
391 | int | - |
392 | rl_noninc_forward_search_again (int count, int key) | - |
393 | { | - |
394 | int r; | - |
395 | | - |
396 | if (!noninc_search_stringTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
397 | { | - |
398 | rl_ding (); | - |
399 | return never executed: return (1); (1);never executed: return (1); | 0 |
400 | } | - |
401 | | - |
402 | if ((rl_editing_mode == 0TRUE | never evaluated | FALSE | never evaluated |
&& _rl_keymap == vi_movement_keymapTRUE | never evaluated | FALSE | never evaluated |
) && key == 'N'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
403 | r = noninc_dosearch (noninc_search_string, 1, 0x10); never executed: r = noninc_dosearch (noninc_search_string, 1, 0x10); | 0 |
404 | else | - |
405 | | - |
406 | r = noninc_dosearch (noninc_search_string, 1, 0); never executed: r = noninc_dosearch (noninc_search_string, 1, 0); | 0 |
407 | return never executed: return (r != 1); (r != 1);never executed: return (r != 1); | 0 |
408 | } | - |
409 | | - |
410 | | - |
411 | | - |
412 | | - |
413 | int | - |
414 | rl_noninc_reverse_search_again (int count, int key) | - |
415 | { | - |
416 | int r; | - |
417 | | - |
418 | if (!noninc_search_stringTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
419 | { | - |
420 | rl_ding (); | - |
421 | return never executed: return (1); (1);never executed: return (1); | 0 |
422 | } | - |
423 | | - |
424 | if ((rl_editing_mode == 0TRUE | never evaluated | FALSE | never evaluated |
&& _rl_keymap == vi_movement_keymapTRUE | never evaluated | FALSE | never evaluated |
) && key == 'n'TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
425 | r = noninc_dosearch (noninc_search_string, -1, 0x10); never executed: r = noninc_dosearch (noninc_search_string, -1, 0x10); | 0 |
426 | else | - |
427 | | - |
428 | r = noninc_dosearch (noninc_search_string, -1, 0); never executed: r = noninc_dosearch (noninc_search_string, -1, 0); | 0 |
429 | return never executed: return (r != 1); (r != 1);never executed: return (r != 1); | 0 |
430 | } | - |
431 | | - |
432 | | - |
433 | int | - |
434 | _rl_nsearch_callback (_rl_search_cxt *cxt) | - |
435 | { | - |
436 | int c, r; | - |
437 | | - |
438 | c = _rl_search_getchar (cxt); | - |
439 | if (c <= 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
440 | { | - |
441 | if (c < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
442 | _rl_nsearch_abort (cxt); never executed: _rl_nsearch_abort (cxt); | 0 |
443 | return never executed: return 1; 1;never executed: return 1; | 0 |
444 | } | - |
445 | r = _rl_nsearch_dispatch (cxt, c); | - |
446 | if (r != 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
447 | return never executed: return 1; 1;never executed: return 1; | 0 |
448 | | - |
449 | r = _rl_nsearch_dosearch (cxt); | - |
450 | return never executed: return ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1)); ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1));never executed: return ((r >= 0) ? _rl_nsearch_cleanup (cxt, r) : (r != 1)); | 0 |
451 | } | - |
452 | | - |
453 | | - |
454 | static int | - |
455 | rl_history_search_internal (int count, int dir) | - |
456 | { | - |
457 | HIST_ENTRY *temp; | - |
458 | int ret, oldpos, newcol; | - |
459 | char *t; | - |
460 | | - |
461 | rl_maybe_save_line (); | - |
462 | temp = (HIST_ENTRY *) | - |
463 | ((void *)0) | - |
464 | ; | - |
465 | | - |
466 | | - |
467 | | - |
468 | | - |
469 | | - |
470 | | - |
471 | while (countTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
472 | { | - |
473 | do { if (_rl_caught_signalTRUE | never evaluated | FALSE | never evaluated |
) _rl_signal_handler (_rl_caught_signal);never executed: _rl_signal_handler (_rl_caught_signal); } while (0); | 0 |
474 | ret = noninc_search_from_pos (history_search_string, rl_history_search_pos + dir, dir, 0, &newcol); | - |
475 | if (ret == -1TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
476 | break; never executed: break; | 0 |
477 | | - |
478 | | - |
479 | rl_history_search_pos = ret; | - |
480 | oldpos = where_history (); | - |
481 | history_set_pos (rl_history_search_pos); | - |
482 | temp = current_history (); | - |
483 | history_set_pos (oldpos); | - |
484 | | - |
485 | | - |
486 | if (prev_line_foundTRUE | never evaluated | FALSE | never evaluated |
&& (((TRUE | never evaluated | FALSE | never evaluated |
prev_line_found)[0] == (temp->line)[0])TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
487 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
488 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
489 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
490 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
491 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
492 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
493 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
494 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
495 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
496 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
497 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
498 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
499 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
500 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
501 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
502 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
503 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
504 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
505 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
506 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
507 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
508 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
509 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
510 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
511 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
512 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
513 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
514 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
515 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
516 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
517 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
518 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
519 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
520 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
521 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
522 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
523 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
524 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
525 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
526 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
527 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
528 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
529 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
530 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
531 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
532 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
533 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( (prev_line_found) ))[3] - __s2[3]); | 0 |
534 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( (prev_line_found) ))[3] - __s2[3]); | 0 |
535 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
536 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
537 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
538 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
539 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
540 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
541 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
542 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
543 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
544 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
545 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
546 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
547 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
548 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
549 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
550 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
551 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
552 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
553 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
554 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
555 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
556 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
557 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
558 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
559 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
560 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
561 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( (temp->line) ))[3] - __s2[3]); | 0 |
562 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( (temp->line) ))[3] - __s2[3]); | 0 |
563 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
564 | (prev_line_found)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
565 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
566 | (temp->line)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
567 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
568 | == 0)TRUE | never evaluated | FALSE | never evaluated |
)) | 0 |
569 | continue; never executed: continue; | 0 |
570 | prev_line_found = temp->line; | - |
571 | count--; | - |
572 | } never executed: end of block | 0 |
573 | | - |
574 | | - |
575 | if (temp == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
576 | { | - |
577 | rl_maybe_unsave_line (); | - |
578 | rl_ding (); | - |
579 | rl_point = rl_history_search_len; | - |
580 | rl_mark = rl_end; | - |
581 | | - |
582 | return never executed: return 1; 1;never executed: return 1; | 0 |
583 | } | - |
584 | | - |
585 | | - |
586 | make_history_line_current (temp); | - |
587 | | - |
588 | | - |
589 | if (rl_history_search_flags & 0x01TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
590 | rl_point = rl_history_search_len; never executed: rl_point = rl_history_search_len; | 0 |
591 | else | - |
592 | { | - |
593 | | - |
594 | | - |
595 | | - |
596 | | - |
597 | rl_point = (TRUE | never evaluated | FALSE | never evaluated |
newcol >= 0)TRUE | never evaluated | FALSE | never evaluated |
? newcol : rl_end; | 0 |
598 | | - |
599 | } never executed: end of block | 0 |
600 | rl_mark = rl_end; | - |
601 | | - |
602 | return never executed: return 0; 0;never executed: return 0; | 0 |
603 | } | - |
604 | | - |
605 | static void | - |
606 | rl_history_search_reinit (int flags) | - |
607 | { | - |
608 | int sind; | - |
609 | | - |
610 | rl_history_search_pos = where_history (); | - |
611 | rl_history_search_len = rl_point; | - |
612 | rl_history_search_flags = flags; | - |
613 | | - |
614 | prev_line_found = (char *) | - |
615 | ((void *)0) | - |
616 | ; | - |
617 | if (rl_pointTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
618 | { | - |
619 | | - |
620 | if (rl_history_search_len >= history_string_size - 2TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
621 | { | - |
622 | history_string_size = rl_history_search_len + 2; | - |
623 | history_search_string = (char *)xrealloc (history_search_string, history_string_size); | - |
624 | } never executed: end of block | 0 |
625 | sind = 0; | - |
626 | if (flags & 0x01TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
627 | history_search_string[sind++] = '^'; never executed: history_search_string[sind++] = '^'; | 0 |
628 | | - |
629 | __builtin_strncpy ( | - |
630 | history_search_string + sind | - |
631 | , | - |
632 | rl_line_buffer | - |
633 | , | - |
634 | rl_point | - |
635 | ) | - |
636 | ; | - |
637 | history_search_string[rl_point + sind] = '\0'; | - |
638 | } never executed: end of block | 0 |
639 | _rl_free_saved_history_line (); | - |
640 | } never executed: end of block | 0 |
641 | | - |
642 | | - |
643 | | - |
644 | | - |
645 | int | - |
646 | rl_history_search_forward (int count, int ignore) | - |
647 | { | - |
648 | if (count == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
649 | return never executed: return (0); (0);never executed: return (0); | 0 |
650 | | - |
651 | if (rl_last_func != rl_history_search_forwardTRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
652 | rl_last_func != rl_history_search_backwardTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
653 | rl_history_search_reinit (0x01); never executed: rl_history_search_reinit (0x01); | 0 |
654 | | - |
655 | if (rl_history_search_len == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
656 | return never executed: return (rl_get_next_history (count, ignore)); (rl_get_next_history (count, ignore));never executed: return (rl_get_next_history (count, ignore)); | 0 |
657 | return never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? 1 : -1)); (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? 1 : -1));never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? 1 : -1)); | 0 |
658 | } | - |
659 | | - |
660 | | - |
661 | | - |
662 | | - |
663 | int | - |
664 | rl_history_search_backward (int count, int ignore) | - |
665 | { | - |
666 | if (count == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
667 | return never executed: return (0); (0);never executed: return (0); | 0 |
668 | | - |
669 | if (rl_last_func != rl_history_search_forwardTRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
670 | rl_last_func != rl_history_search_backwardTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
671 | rl_history_search_reinit (0x01); never executed: rl_history_search_reinit (0x01); | 0 |
672 | | - |
673 | if (rl_history_search_len == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
674 | return never executed: return (rl_get_previous_history (count, ignore)); (rl_get_previous_history (count, ignore));never executed: return (rl_get_previous_history (count, ignore)); | 0 |
675 | return never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? -1 : 1)); (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? -1 : 1));never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? -1 : 1)); | 0 |
676 | } | - |
677 | | - |
678 | | - |
679 | | - |
680 | | - |
681 | | - |
682 | int | - |
683 | rl_history_substr_search_forward (int count, int ignore) | - |
684 | { | - |
685 | if (count == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
686 | return never executed: return (0); (0);never executed: return (0); | 0 |
687 | | - |
688 | if (rl_last_func != rl_history_substr_search_forwardTRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
689 | rl_last_func != rl_history_substr_search_backwardTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
690 | rl_history_search_reinit (0); never executed: rl_history_search_reinit (0); | 0 |
691 | | - |
692 | if (rl_history_search_len == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
693 | return never executed: return (rl_get_next_history (count, ignore)); (rl_get_next_history (count, ignore));never executed: return (rl_get_next_history (count, ignore)); | 0 |
694 | return never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? 1 : -1)); (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? 1 : -1));never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? 1 : -1)); | 0 |
695 | } | - |
696 | | - |
697 | | - |
698 | | - |
699 | | - |
700 | int | - |
701 | rl_history_substr_search_backward (int count, int ignore) | - |
702 | { | - |
703 | if (count == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
704 | return never executed: return (0); (0);never executed: return (0); | 0 |
705 | | - |
706 | if (rl_last_func != rl_history_substr_search_forwardTRUE | never evaluated | FALSE | never evaluated |
&& | 0 |
707 | rl_last_func != rl_history_substr_search_backwardTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
708 | rl_history_search_reinit (0); never executed: rl_history_search_reinit (0); | 0 |
709 | | - |
710 | if (rl_history_search_len == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
711 | return never executed: return (rl_get_previous_history (count, ignore)); (rl_get_previous_history (count, ignore));never executed: return (rl_get_previous_history (count, ignore)); | 0 |
712 | return never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? -1 : 1)); (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? -1 : 1));never executed: return (rl_history_search_internal ((((count) >= 0) ? (count) : -(count)), (count > 0) ? -1 : 1)); | 0 |
713 | } | - |
| | |