Skip to content
StrIterMustNext

StrIterMustNext

Description

Aborting variant of StrIterNext.

Usage example (Cross-references)

Usage examples (Cross-references)
                break;                                                                                                     \
            }                                                                                                              \
            StrIterMustNext(&si);                                                                                          \
            si = JSkipWhitespace(si);                                                                                      \
            StrIter read_si_;                                                                                              \
                        break;                                                                                             \
                    }                                                                                                      \
                    StrIterMustNext(&si);                                                                                  \
                    si = JSkipWhitespace(si);                                                                              \
                }                                                                                                          \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
                si                     = JSkipWhitespace(si);                                                              \
                StrIter si_before_read = si;                                                                               \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
            }                                                                                                              \
        } while (0)
                break;                                                                                                     \
            }                                                                                                              \
            StrIterMustNext(&si);                                                                                          \
            si = JSkipWhitespace(si);                                                                                      \
            StrIter read_si_;                                                                                              \
                        break;                                                                                             \
                    }                                                                                                      \
                    StrIterMustNext(&si);                                                                                  \
                    si = JSkipWhitespace(si);                                                                              \
                }                                                                                                          \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
                si                     = JSkipWhitespace(si);                                                              \
                StrIter si_before_read = si;                                                                               \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
            }                                                                                                              \
        } while (0)
                break;                                                                                                     \
            }                                                                                                              \
            StrIterMustNext(&si);                                                                                          \
            si = JSkipWhitespace(si);                                                                                      \
            StrIter read_si_;                                                                                              \
                        break;                                                                                             \
                    }                                                                                                      \
                    StrIterMustNext(&si);                                                                                  \
                    si = JSkipWhitespace(si);                                                                              \
                }                                                                                                          \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
                si                     = JSkipWhitespace(si);                                                              \
                StrIter si_before_read = si;                                                                               \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
            }                                                                                                              \
        } while (0)
                break;                                                                                                     \
            }                                                                                                              \
            StrIterMustNext(&si);                                                                                          \
            si = JSkipWhitespace(si);                                                                                      \
            StrIter read_si_;                                                                                              \
                        break;                                                                                             \
                    }                                                                                                      \
                    StrIterMustNext(&si);                                                                                  \
                    si = JSkipWhitespace(si);                                                                              \
                }                                                                                                          \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
                si                     = JSkipWhitespace(si);                                                              \
                StrIter si_before_read = si;                                                                               \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
            }                                                                                                              \
        } while (0)
        char c;
        if (StrIterPeek(&si, &c) && c == '\r') {
            StrIterMustNext(&si);
        }
        if (StrIterPeek(&si, &c) && c == '\n') {
        }
        if (StrIterPeek(&si, &c) && c == '\n') {
            StrIterMustNext(&si);
        }
        return si;
        char c;
        while (StrIterPeek(&si, &c) && kvconfig_is_space(c)) {
            StrIterMustNext(&si);
        }
        return si;
        char c;
        while (StrIterPeek(&si, &c) && c != '\n') {
            StrIterMustNext(&si);
        }
        return kvconfig_consume_line_end(si);
    
            StrPushBack(key, c);
            StrIterMustNext(&si);
        }
        char quote = c;
        if (quote == '"' || quote == '\'') {
            StrIterMustNext(&si);
    
            while (StrIterPeek(&si, &c)) {
            while (StrIterPeek(&si, &c)) {
                if (c == quote) {
                    StrIterMustNext(&si);
                    return si;
                }
    
                if (c == '\\') {
                    StrIterMustNext(&si);
                    if (!StrIterPeek(&si, &c)) {
                        LOG_ERROR("Unexpected end of quoted config value");
                    }
    
                    StrIterMustNext(&si);
                    continue;
                }
    
                StrPushBack(value, c);
                StrIterMustNext(&si);
            }
    
            StrPushBack(value, c);
            StrIterMustNext(&si);
        }
        }
    
        StrIterMustNext(&si);
        si = KvConfigReadValue(si, value);
            while (StrIterPeek(&si, &c)) {
                if (c == '\n') {
                    StrIterMustNext(&si);
                    continue;
                }
            return saved_si;
        }
        StrIterMustNext(&si);
        si = JSkipWhitespace(si);
                    return saved_si;
                }
                StrIterMustNext(&si); // skip comma
                si = JSkipWhitespace(si);
            }
                return saved_si;
            }
            StrIterMustNext(&si);
            si = JSkipWhitespace(si);
        }
    
        StrIterMustNext(&si);
        DefaultAllocatorDeinit(&scratch);
        return si;
            return saved_si;
        }
        StrIterMustNext(&si);
        si = JSkipWhitespace(si);
                    return saved_si;
                }
                StrIterMustNext(&si); // skip comma
                si = JSkipWhitespace(si);
            }
        }
    
        StrIterMustNext(&si);
        return si;
    }
                case '\r' :
                case '\n' :
                    StrIterMustNext(&si);
                    break;
                default :
        char c;
        if (StrIterPeek(&si, &c) && c == '"') {
            StrIterMustNext(&si);
    
            // while a printable character
                    // end of string
                    case '"' :
                        StrIterMustNext(&si);
                        return si;
                    // starting of an escape sequence
                    case '\\' :
                        StrIterMustNext(&si);
                        if (!StrIterPeek(&si, &c)) {
                            LOG_ERROR("Unexpected end of string.");
                            case '\\' :
                                StrPushBack(str, '\\');
                                StrIterMustNext(&si);
                                break;
                            case '"' :
                                StrPushBack(str, '"');
                                StrIterMustNext(&si);
                                break;
                            case '/' :
                                StrPushBack(str, '/');
                                StrIterMustNext(&si);
                                break;
                            case 'b' :
                                StrPushBack(str, '\b');
                                StrIterMustNext(&si);
                                break;
                            case 'f' :
                                StrPushBack(str, '\f');
                                StrIterMustNext(&si);
                                break;
                            case 'n' :
                                StrPushBack(str, '\n');
                                StrIterMustNext(&si);
                                break;
                            case 'r' :
                                StrPushBack(str, '\r');
                                StrIterMustNext(&si);
                                break;
                            case 't' :
                                StrPushBack(str, '\t');
                                StrIterMustNext(&si);
                                break;
                    default :
                        StrPushBack(str, c);
                        StrIterMustNext(&si);
                        break;
                }
        if (StrIterPeek(&si, &c) && c == '-') {
            is_neg = true;
            StrIterMustNext(&si);
        }
                    is_flt  = true;
                    StrPushBack(&ns, c);
                    StrIterMustNext(&si);
                    break;
                    is_flt = true;
                    StrPushBack(&ns, c);
                    StrIterMustNext(&si);
                    break;
                case '9' :
                    StrPushBack(&ns, c);
                    StrIterMustNext(&si);
                    break;
                    has_exp_plus_minus = true;
                    StrPushBack(&ns, c);
                    StrIterMustNext(&si);
                    break;
                break;                                                                                                     \
            }                                                                                                              \
            StrIterMustNext(&si);                                                                                          \
            si = JSkipWhitespace(si);                                                                                      \
                                                                                                                           \
                }                                                                                                          \
                                                                                                                           \
                StrIterMustNext(&si);                                                                                      \
            }                                                                                                              \
        } while (0)
                break;                                                                                                     \
            }                                                                                                              \
            StrIterMustNext(&si);                                                                                          \
            si = JSkipWhitespace(si);                                                                                      \
                                                                                                                           \
                    break;                                                                                                 \
                }                                                                                                          \
                StrIterMustNext(&si);                                                                                      \
                si = JSkipWhitespace(si);                                                                                  \
                                                                                                                           \
                }                                                                                                          \
                                                                                                                           \
                StrIterMustNext(&si);                                                                                      \
            }                                                                                                              \
        } while (0)
Last updated on