Line data Source code
1 : /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2 :
3 : #pragma once
4 :
5 : /***
6 : This file is part of systemd.
7 :
8 : Copyright 2015 Zbigniew Jędrzejewski-Szmek
9 :
10 : systemd is free software; you can redistribute it and/or modify it
11 : under the terms of the GNU Lesser General Public License as published by
12 : the Free Software Foundation; either version 2.1 of the License, or
13 : (at your option) any later version.
14 :
15 : systemd is distributed in the hope that it will be useful, but
16 : WITHOUT ANY WARRANTY; without even the implied warranty of
17 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 : Lesser General Public License for more details.
19 :
20 : You should have received a copy of the GNU Lesser General Public License
21 : along with systemd; If not, see <http://www.gnu.org/licenses/>.
22 : ***/
23 :
24 : #include <stdbool.h>
25 : #include <stddef.h>
26 : #include "macro.h"
27 :
28 : int fstab_filter_options(const char *opts, const char *names,
29 : const char **namefound, char **value, char **filtered);
30 :
31 : int fstab_extract_values(const char *opts, const char *name, char ***values);
32 :
33 80 : static inline bool fstab_test_option(const char *opts, const char *names) {
34 80 : return !!fstab_filter_options(opts, names, NULL, NULL, NULL);
35 : }
36 :
37 : int fstab_find_pri(const char *options, int *ret);
38 :
39 5 : static inline bool fstab_test_yes_no_option(const char *opts, const char *yes_no) {
40 : int r;
41 : const char *opt;
42 :
43 : /* If first name given is last, return 1.
44 : * If second name given is last or neither is found, return 0. */
45 :
46 5 : r = fstab_filter_options(opts, yes_no, &opt, NULL, NULL);
47 5 : assert(r >= 0);
48 :
49 5 : return opt == yes_no;
50 : }
|