Bug Summary

File:filelist-parser.c
Warning:line 44, column 17
Value stored to 'start' is never read

Annotated Source Code

[?] Use j/k keys for keyboard navigation

1/*
2 * blogc: A blog compiler.
3 * Copyright (C) 2014-2019 Rafael G. Martins <rafael@rafaelmartins.eng.br>
4 *
5 * This program can be distributed under the terms of the BSD License.
6 * See the file LICENSE.
7 */
8
9#include "../common/utils.h"
10
11
12typedef enum {
13 LINE_START = 1,
14 LINE,
15} blogc_filelist_parser_state_t;
16
17
18bc_slist_t*
19blogc_filelist_parse(const char *src, size_t src_len)
20{
21 size_t current = 0;
22 size_t start = 0;
23 bc_slist_t *rv = NULL((void*)0);
24 bc_string_t *line = bc_string_new();
25 blogc_filelist_parser_state_t state = LINE_START;
26
27 while (current < src_len) {
28 char c = src[current];
29 bool_Bool is_last = current == src_len - 1;
30
31 switch (state) {
32
33 case LINE_START:
34 if (c == '#') {
35 while (current < src_len) {
36 if (src[current] == '\r' || src[current] == '\n')
37 break;
38 current++;
39 }
40 break;
41 }
42 if (c == ' ' || c == '\t' || c == '\r' || c == '\n')
43 break;
44 start = current;
Value stored to 'start' is never read
45 state = LINE;
46 continue;
47
48 case LINE:
49 if (c == '\r' || c == '\n' || is_last) {
50 if (is_last && c != '\r' && c != '\n')
51 bc_string_append_c(line, c);
52 rv = bc_slist_append(rv, bc_str_strip(line->str));
53 bc_string_free(line, false0);
54 line = bc_string_new();
55 state = LINE_START;
56 break;
57 }
58 bc_string_append_c(line, c);
59 break;
60
61 }
62
63 current++;
64 }
65
66 bc_string_free(line, true1);
67
68 return rv;
69}