Mercurial > hg > octave-nkf > gnulib-hg
comparison lib/quotearg.h @ 1248:4d96c17d0c49
.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Mon, 23 Feb 1998 10:16:53 +0000 |
parents | |
children | c5862deb63ad |
comparison
equal
deleted
inserted
replaced
1247:d48d2e0fa40f | 1248:4d96c17d0c49 |
---|---|
1 /* quotearg.h - quote arguments for output | |
2 Copyright (C) 1998 Free Software Foundation, Inc. | |
3 | |
4 This program is free software; you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 2, or (at your option) | |
7 any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
15 along with this program; if not, write to the Free Software Foundation, | |
16 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
17 | |
18 /* Written by Paul Eggert <eggert@twinsun.com> */ | |
19 | |
20 /* Basic quoting styles. */ | |
21 enum quoting_style | |
22 { | |
23 literal_quoting_style, /* --quoting-style=literal */ | |
24 shell_quoting_style, /* --quoting-style=shell */ | |
25 shell_always_quoting_style, /* --quoting-style=shell-always */ | |
26 c_quoting_style, /* --quoting-style=c */ | |
27 escape_quoting_style /* --quoting-style=escape */ | |
28 }; | |
29 | |
30 /* For now, --quoting-style=literal is the default, but | |
31 this is planned to change to --quoting-style=shell in the future. */ | |
32 #ifndef DEFAULT_QUOTING_STYLE | |
33 # define DEFAULT_QUOTING_STYLE literal_quoting_style | |
34 #endif | |
35 | |
36 /* Names of quoting styles. */ | |
37 extern char const *const quoting_style_args[]; | |
38 | |
39 struct quoting_options; | |
40 | |
41 #ifndef PARAMS | |
42 # if defined PROTOTYPES || (defined __STDC__ && __STDC__) | |
43 # define PARAMS(Args) Args | |
44 # else | |
45 # define PARAMS(Args) () | |
46 # endif | |
47 #endif | |
48 | |
49 /* Allocate a new set of quoting options, with contents initially identical | |
50 to O if O is not null, or to a default value if O is null. | |
51 It is the caller's responsibility to free the result. */ | |
52 struct quoting_options *clone_quoting_options | |
53 PARAMS ((struct quoting_options *o)); | |
54 | |
55 /* Get the value of O's quoting style. */ | |
56 enum quoting_style get_quoting_style PARAMS ((struct quoting_options *o)); | |
57 | |
58 /* In O, set the value of the quoting style to S. */ | |
59 void set_quoting_style PARAMS ((struct quoting_options *o, | |
60 enum quoting_style s)); | |
61 | |
62 /* In O, set the value of the quoting options for character C to I. | |
63 Return the old value. Currently, the only values defined for I are | |
64 0 (the default) and 1 (which means to quote the character even if | |
65 it would not otherwise be quoted). */ | |
66 int set_char_quoting PARAMS ((struct quoting_options *o, char c, int i)); | |
67 | |
68 /* Place into buffer BUF (of size BUFSIZE) a quoted version of | |
69 argument ARG (of size ARGSIZE), using O to control quoting. | |
70 Terminate the output with a null character, and return the written | |
71 size of the output, not counting the terminating null. | |
72 If BUFSIZE is too small to store the output string, return the | |
73 value that would have been returned had BUFSIZE been large enough. | |
74 If ARGSIZE is -1, use the string length of the argument for ARGSIZE. */ | |
75 size_t quotearg_buffer PARAMS ((char *buf, size_t bufsize, | |
76 char const *arg, size_t argsize, | |
77 struct quoting_options const *o)); | |
78 | |
79 /* The quoting options used by the convenience functions listed below. */ | |
80 | |
81 extern struct quoting_options quotearg_quoting_options; | |
82 | |
83 /* Use storage slot N to return a quoted version of the string ARG. | |
84 The variable quotearg_quoting_options specifies the quoting options. | |
85 The returned value points to static storage that can be | |
86 reused by the next call to this function with the same value of N. | |
87 N must be nonnegative. */ | |
88 char *quotearg_n PARAMS ((int n, char const *arg)); | |
89 | |
90 /* Equivalent to quotearg_n (ARG, 0). */ | |
91 char *quotearg PARAMS ((char const *arg)); | |
92 | |
93 /* Like quotearg (ARG), except also quote any instances of CH. */ | |
94 char *quotearg_char PARAMS ((char const *arg, char ch)); | |
95 | |
96 /* Equivalent to quotearg_char (ARG, ':'). */ | |
97 char *quotearg_colon PARAMS ((char const *arg)); |