84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering#pragma once
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering/***
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering This file is part of systemd.
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering Copyright 2010 Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering systemd is free software; you can redistribute it and/or modify it
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering under the terms of the GNU Lesser General Public License as published by
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering the Free Software Foundation; either version 2.1 of the License, or
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering (at your option) any later version.
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering systemd is distributed in the hope that it will be useful, but
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering WITHOUT ANY WARRANTY; without even the implied warranty of
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering Lesser General Public License for more details.
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering You should have received a copy of the GNU Lesser General Public License
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering along with systemd; If not, see <http://www.gnu.org/licenses/>.
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering***/
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering#include "macro.h"
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poetteringtypedef enum ExtractFlags {
c89f52ac6938374972253d8752ed65f3af0b3ef4Lennart Poettering EXTRACT_RELAX = 1,
c89f52ac6938374972253d8752ed65f3af0b3ef4Lennart Poettering EXTRACT_CUNESCAPE = 2,
c89f52ac6938374972253d8752ed65f3af0b3ef4Lennart Poettering EXTRACT_CUNESCAPE_RELAX = 4,
c89f52ac6938374972253d8752ed65f3af0b3ef4Lennart Poettering EXTRACT_QUOTES = 8,
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering EXTRACT_DONT_COALESCE_SEPARATORS = 16,
c89f52ac6938374972253d8752ed65f3af0b3ef4Lennart Poettering EXTRACT_RETAIN_ESCAPE = 32,
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering} ExtractFlags;
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poettering
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poetteringint extract_first_word(const char **p, char **ret, const char *separators, ExtractFlags flags);
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poetteringint extract_first_word_and_warn(const char **p, char **ret, const char *separators, ExtractFlags flags, const char *unit, const char *filename, unsigned line, const char *rvalue);
84ac7bea360cd369df26910e9685a7eed2327088Lennart Poetteringint extract_many_words(const char **p, const char *separators, ExtractFlags flags, ...) _sentinel_;