1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2015-01-11 03:53+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
20 #: build/C/man3/fnmatch.3:28
26 #: build/C/man3/fnmatch.3:28
32 #: build/C/man3/fnmatch.3:28 build/C/man3/glob.3:34 build/C/man3/re_comp.3:27 build/C/man3/regex.3:30
38 #: build/C/man3/fnmatch.3:28 build/C/man3/glob.3:34 build/C/man7/glob.7:26 build/C/man3/re_comp.3:27 build/C/man3/regex.3:30 build/C/man7/regex.7:37 build/C/man3/wordexp.3:24
40 msgid "Linux Programmer's Manual"
44 #: build/C/man3/fnmatch.3:29 build/C/man3/glob.3:35 build/C/man7/glob.7:27 build/C/man3/re_comp.3:28 build/C/man3/regex.3:31 build/C/man7/regex.7:38 build/C/man3/wordexp.3:25
50 #: build/C/man3/fnmatch.3:31
51 msgid "fnmatch - match filename or pathname"
55 #: build/C/man3/fnmatch.3:31 build/C/man3/glob.3:37 build/C/man3/re_comp.3:30 build/C/man3/regex.3:33 build/C/man3/wordexp.3:27
61 #: build/C/man3/fnmatch.3:34
63 msgid "B<#include E<lt>fnmatch.hE<gt>>\n"
67 #: build/C/man3/fnmatch.3:36
70 "B<int fnmatch(const char *>I<pattern>B<, const char *>I<string>B<, int "
75 #: build/C/man3/fnmatch.3:37 build/C/man3/glob.3:49 build/C/man7/glob.7:29 build/C/man3/re_comp.3:40 build/C/man3/regex.3:49 build/C/man7/regex.7:40 build/C/man3/wordexp.3:42
81 #: build/C/man3/fnmatch.3:45
83 "The B<fnmatch>() function checks whether the I<string> argument matches the "
84 "I<pattern> argument, which is a shell wildcard pattern."
88 #: build/C/man3/fnmatch.3:50
90 "The I<flags> argument modifies the behavior; it is the bitwise OR of zero or "
91 "more of the following flags:"
95 #: build/C/man3/fnmatch.3:50
97 msgid "B<FNM_NOESCAPE>"
101 #: build/C/man3/fnmatch.3:54
103 "If this flag is set, treat backslash as an ordinary character, instead of an "
108 #: build/C/man3/fnmatch.3:54
110 msgid "B<FNM_PATHNAME>"
114 #: build/C/man3/fnmatch.3:62
116 "If this flag is set, match a slash in I<string> only with a slash in "
117 "I<pattern> and not by an asterisk (*) or a question mark (?) metacharacter, "
118 "nor by a bracket expression ([]) containing a slash."
122 #: build/C/man3/fnmatch.3:62
124 msgid "B<FNM_PERIOD>"
128 #: build/C/man3/fnmatch.3:73
130 "If this flag is set, a leading period in I<string> has to be matched exactly "
131 "by a period in I<pattern>. A period is considered to be leading if it is "
132 "the first character in I<string>, or if both B<FNM_PATHNAME> is set and the "
133 "period immediately follows a slash."
137 #: build/C/man3/fnmatch.3:73
139 msgid "B<FNM_FILE_NAME>"
143 #: build/C/man3/fnmatch.3:77
144 msgid "This is a GNU synonym for B<FNM_PATHNAME>."
148 #: build/C/man3/fnmatch.3:77
150 msgid "B<FNM_LEADING_DIR>"
154 #: build/C/man3/fnmatch.3:85
156 "If this flag (a GNU extension) is set, the pattern is considered to be "
157 "matched if it matches an initial segment of I<string> which is followed by a "
158 "slash. This flag is mainly for the internal use of glibc and is implemented "
159 "only in certain cases."
163 #: build/C/man3/fnmatch.3:85
165 msgid "B<FNM_CASEFOLD>"
169 #: build/C/man3/fnmatch.3:89
171 "If this flag (a GNU extension) is set, the pattern is matched "
172 "case-insensitively."
176 #: build/C/man3/fnmatch.3:89 build/C/man3/glob.3:262 build/C/man3/re_comp.3:58 build/C/man3/regex.3:247 build/C/man3/wordexp.3:157
182 #: build/C/man3/fnmatch.3:96
184 "Zero if I<string> matches I<pattern>, B<FNM_NOMATCH> if there is no match or "
185 "another nonzero value if there is an error."
189 #: build/C/man3/fnmatch.3:96 build/C/man3/glob.3:276 build/C/man3/re_comp.3:73 build/C/man3/regex.3:304 build/C/man3/wordexp.3:187
191 msgid "CONFORMING TO"
195 #: build/C/man3/fnmatch.3:101
197 "POSIX.2. The B<FNM_FILE_NAME>, B<FNM_LEADING_DIR>, and B<FNM_CASEFOLD> "
198 "flags are GNU extensions."
202 #: build/C/man3/fnmatch.3:101 build/C/man3/glob.3:319 build/C/man7/glob.7:208 build/C/man3/re_comp.3:79 build/C/man3/regex.3:306 build/C/man7/regex.7:287 build/C/man3/wordexp.3:213
208 #: build/C/man3/fnmatch.3:107
209 msgid "B<sh>(1), B<glob>(3), B<scandir>(3), B<wordexp>(3), B<glob>(7)"
213 #: build/C/man3/fnmatch.3:107 build/C/man3/glob.3:330 build/C/man7/glob.7:214 build/C/man3/re_comp.3:83 build/C/man3/regex.3:312 build/C/man7/regex.7:292 build/C/man3/wordexp.3:216
219 #: build/C/man3/fnmatch.3:115 build/C/man3/glob.3:338 build/C/man7/glob.7:222 build/C/man3/re_comp.3:91 build/C/man3/regex.3:320 build/C/man7/regex.7:300 build/C/man3/wordexp.3:224
221 "This page is part of release 3.77 of the Linux I<man-pages> project. A "
222 "description of the project, information about reporting bugs, and the latest "
223 "version of this page, can be found at "
224 "\\%http://www.kernel.org/doc/man-pages/."
228 #: build/C/man3/glob.3:34 build/C/man7/glob.7:26
234 #: build/C/man3/glob.3:34
240 #: build/C/man3/glob.3:37
241 msgid "glob, globfree - find pathnames matching a pattern, free memory from glob()"
245 #: build/C/man3/glob.3:40
247 msgid "B<#include E<lt>glob.hE<gt>>\n"
251 #: build/C/man3/glob.3:42
253 msgid "B<int glob(const char *>I<pattern>B<, int >I<flags>B<,>\n"
257 #: build/C/man3/glob.3:44
260 "B< int (*>I<errfunc>B<) (const char *>I<epath>B<, int "
265 #: build/C/man3/glob.3:46
267 msgid "B< glob_t *>I<pglob>B<);>\n"
271 #: build/C/man3/glob.3:48
273 msgid "B<void globfree(glob_t *>I<pglob>B<);>\n"
277 #: build/C/man3/glob.3:59
279 "The B<glob>() function searches for all the pathnames matching I<pattern> "
280 "according to the rules used by the shell (see B<glob>(7)). No tilde "
281 "expansion or parameter substitution is done; if you want these, use "
286 #: build/C/man3/glob.3:65
288 "The B<globfree>() function frees the dynamically allocated storage from an "
289 "earlier call to B<glob>()."
293 #: build/C/man3/glob.3:76
295 "The results of a B<glob>() call are stored in the structure pointed to by "
296 "I<pglob>. This structure is of type I<glob_t> (declared in "
297 "I<E<lt>glob.hE<gt>>) and includes the following elements defined by POSIX.2 "
298 "(more may be present as an extension):"
302 #: build/C/man3/glob.3:85
306 " size_t gl_pathc; /* Count of paths matched so far */\n"
307 " char **gl_pathv; /* List of matched pathnames. */\n"
308 " size_t gl_offs; /* Slots to reserve in I<gl_pathv>. */\n"
313 #: build/C/man3/glob.3:89
314 msgid "Results are stored in dynamically allocated storage."
318 #: build/C/man3/glob.3:95
320 "The argument I<flags> is made up of the bitwise OR of zero or more the "
321 "following symbolic constants, which modify the behavior of B<glob>():"
325 #: build/C/man3/glob.3:95
331 #: build/C/man3/glob.3:103
333 "Return upon a read error (because a directory does not have read permission, "
334 "for example). By default, B<glob>() attempts carry on despite errors, "
335 "reading all of the directories that it can."
339 #: build/C/man3/glob.3:103
345 #: build/C/man3/glob.3:106
346 msgid "Append a slash to each path which corresponds to a directory."
350 #: build/C/man3/glob.3:106
352 msgid "B<GLOB_NOSORT>"
356 #: build/C/man3/glob.3:111
358 "Don't sort the returned pathnames. The only reason to do this is to save "
359 "processing time. By default, the returned pathnames are sorted."
363 #: build/C/man3/glob.3:111
365 msgid "B<GLOB_DOOFFS>"
369 #: build/C/man3/glob.3:118
371 "Reserve I<pglob-E<gt>gl_offs> slots at the beginning of the list of strings "
372 "in I<pglob-E<gt>pathv>. The reserved slots contain null pointers."
376 #: build/C/man3/glob.3:118
378 msgid "B<GLOB_NOCHECK>"
382 #: build/C/man3/glob.3:126
384 "If no pattern matches, return the original pattern. By default, B<glob>() "
385 "returns B<GLOB_NOMATCH> if there are no matches."
389 #: build/C/man3/glob.3:126
391 msgid "B<GLOB_APPEND>"
395 #: build/C/man3/glob.3:133
397 "Append the results of this call to the vector of results returned by a "
398 "previous call to B<glob>(). Do not set this flag on the first invocation of "
403 #: build/C/man3/glob.3:133
405 msgid "B<GLOB_NOESCAPE>"
409 #: build/C/man3/glob.3:140
411 "Don't allow backslash (\\(aq\\e\\(aq) to be used as an escape character. "
412 "Normally, a backslash can be used to quote the following character, "
413 "providing a mechanism to turn off the special meaning metacharacters."
417 #: build/C/man3/glob.3:144
419 "I<flags> may also include any of the following, which are GNU extensions and "
420 "not defined by POSIX.2:"
424 #: build/C/man3/glob.3:144
426 msgid "B<GLOB_PERIOD>"
430 #: build/C/man3/glob.3:148
432 "Allow a leading period to be matched by metacharacters. By default, "
433 "metacharacters can't match a leading period."
437 #: build/C/man3/glob.3:148
439 msgid "B<GLOB_ALTDIRFUNC>"
443 #: build/C/man3/glob.3:158
445 "Use alternative functions I<pglob-E<gt>gl_closedir>, "
446 "I<pglob-E<gt>gl_readdir>, I<pglob-E<gt>gl_opendir>, I<pglob-E<gt>gl_lstat>, "
447 "and I<pglob-E<gt>gl_stat> for filesystem access instead of the normal "
452 #: build/C/man3/glob.3:158
454 msgid "B<GLOB_BRACE>"
458 #: build/C/man3/glob.3:174
460 "Expand B<csh>(1) style brace expressions of the form B<{a,b}>. Brace "
461 "expressions can be nested. Thus, for example, specifying the pattern "
462 "\"{foo/{,cat,dog},bar}\" would return the same results as four separate "
463 "B<glob>() calls using the strings: \"foo/\", \"foo/cat\", \"foo/dog\", and "
468 #: build/C/man3/glob.3:174
470 msgid "B<GLOB_NOMAGIC>"
474 #: build/C/man3/glob.3:179
476 "If the pattern contains no metacharacters, then it should be returned as the "
477 "sole matching word, even if there is no file with that name."
481 #: build/C/man3/glob.3:179
483 msgid "B<GLOB_TILDE>"
487 #: build/C/man3/glob.3:191
489 "Carry out tilde expansion. If a tilde (\\(aq~\\(aq) is the only character "
490 "in the pattern, or an initial tilde is followed immediately by a slash "
491 "(\\(aq/\\(aq), then the home directory of the caller is substituted for the "
492 "tilde. If an initial tilde is followed by a username (e.g., "
493 "\"~andrea/bin\"), then the tilde and username are substituted by the home "
494 "directory of that user. If the username is invalid, or the home directory "
495 "cannot be determined, then no substitution is performed."
499 #: build/C/man3/glob.3:191
501 msgid "B<GLOB_TILDE_CHECK>"
505 #: build/C/man3/glob.3:202
507 "This provides behavior similar to that of B<GLOB_TILDE>. The difference is "
508 "that if the username is invalid, or the home directory cannot be determined, "
509 "then instead of using the pattern itself as the name, B<glob>() returns "
510 "B<GLOB_NOMATCH> to indicate an error."
514 #: build/C/man3/glob.3:202
516 msgid "B<GLOB_ONLYDIR>"
520 #: build/C/man3/glob.3:215
522 "This is a I<hint> to B<glob>() that the caller is interested only in "
523 "directories that match the pattern. If the implementation can easily "
524 "determine file-type information, then nondirectory files are not returned to "
525 "the caller. However, the caller must still check that returned files are "
526 "directories. (The purpose of this flag is merely to optimize performance "
527 "when the caller is interested only in directories.)"
531 #: build/C/man3/glob.3:238
533 "If I<errfunc> is not NULL, it will be called in case of an error with the "
534 "arguments I<epath>, a pointer to the path which failed, and I<eerrno>, the "
535 "value of I<errno> as returned from one of the calls to B<opendir>(3), "
536 "B<readdir>(3), or B<stat>(2). If I<errfunc> returns nonzero, or if "
537 "B<GLOB_ERR> is set, B<glob>() will terminate after the call to I<errfunc>."
541 #: build/C/man3/glob.3:245
543 "Upon successful return, I<pglob-E<gt>gl_pathc> contains the number of "
544 "matched pathnames and I<pglob-E<gt>gl_pathv> contains a pointer to the list "
545 "of pointers to matched pathnames. The list of pointers is terminated by a "
550 #: build/C/man3/glob.3:254
552 "It is possible to call B<glob>() several times. In that case, the "
553 "B<GLOB_APPEND> flag has to be set in I<flags> on the second and later "
558 #: build/C/man3/glob.3:262
560 "As a GNU extension, I<pglob-E<gt>gl_flags> is set to the flags specified, "
561 "B<or>ed with B<GLOB_MAGCHAR> if any metacharacters were found."
565 #: build/C/man3/glob.3:267
567 "On successful completion, B<glob>() returns zero. Other possible returns "
572 #: build/C/man3/glob.3:267
574 msgid "B<GLOB_NOSPACE>"
578 #: build/C/man3/glob.3:270
579 msgid "for running out of memory,"
583 #: build/C/man3/glob.3:270
585 msgid "B<GLOB_ABORTED>"
589 #: build/C/man3/glob.3:273
590 msgid "for a read error, and"
594 #: build/C/man3/glob.3:273
596 msgid "B<GLOB_NOMATCH>"
600 #: build/C/man3/glob.3:276
601 msgid "for no found matches."
605 #: build/C/man3/glob.3:278
606 msgid "POSIX.2, POSIX.1-2001."
610 #: build/C/man3/glob.3:278 build/C/man7/glob.7:142 build/C/man3/re_comp.3:75
616 #: build/C/man3/glob.3:289
618 "The structure elements I<gl_pathc> and I<gl_offs> are declared as I<size_t> "
619 "in glibc 2.1, as they should be according to POSIX.2, but are declared as "
620 "I<int> in glibc 2.0."
624 #: build/C/man3/glob.3:289 build/C/man7/regex.7:260
630 #: build/C/man3/glob.3:298
632 "The B<glob>() function may fail due to failure of underlying function "
633 "calls, such as B<malloc>(3) or B<opendir>(3). These will store their error "
638 #: build/C/man3/glob.3:298 build/C/man3/wordexp.3:189
644 #: build/C/man3/glob.3:300
645 msgid "One example of use is the following code, which simulates typing"
649 #: build/C/man3/glob.3:303
650 msgid "ls -l *.c ../*.c"
654 #: build/C/man3/glob.3:306
655 msgid "in the shell:"
659 #: build/C/man3/glob.3:310
661 msgid "glob_t globbuf;\n"
665 #: build/C/man3/glob.3:317
668 "globbuf.gl_offs = 2;\n"
669 "glob(\"*.c\", GLOB_DOOFFS, NULL, &globbuf);\n"
670 "glob(\"../*.c\", GLOB_DOOFFS | GLOB_APPEND, NULL, &globbuf);\n"
671 "globbuf.gl_pathv[0] = \"ls\";\n"
672 "globbuf.gl_pathv[1] = \"-l\";\n"
673 "execvp(\"ls\", &globbuf.gl_pathv[0]);\n"
677 #: build/C/man3/glob.3:330
679 "B<ls>(1), B<sh>(1), B<stat>(2), B<exec>(3), B<fnmatch>(3), B<malloc>(3), "
680 "B<opendir>(3), B<readdir>(3), B<wordexp>(3), B<glob>(7)"
684 #: build/C/man7/glob.7:26
690 #: build/C/man7/glob.7:26
696 #: build/C/man7/glob.7:29
697 msgid "glob - globbing pathnames"
701 #: build/C/man7/glob.7:34
703 "Long ago, in UNIX\\ V6, there was a program I</etc/glob> that would expand "
704 "wildcard patterns. Soon afterward this became a shell built-in."
708 #: build/C/man7/glob.7:38
710 "These days there is also a library routine B<glob>(3) that will perform "
711 "this function for a user program."
715 #: build/C/man7/glob.7:40
716 msgid "The rules are as follows (POSIX.2, 3.13)."
720 #: build/C/man7/glob.7:40
722 msgid "Wildcard matching"
726 #: build/C/man7/glob.7:47
728 "A string is a wildcard pattern if it contains one of the characters "
729 "\\(aq?\\(aq, \\(aq*\\(aq or \\(aq[\\(aq. Globbing is the operation that "
730 "expands a wildcard pattern into the list of pathnames matching the pattern. "
731 "Matching is defined by:"
735 #: build/C/man7/glob.7:49
736 msgid "A \\(aq?\\(aq (not between brackets) matches any single character."
740 #: build/C/man7/glob.7:52
742 "A \\(aq*\\(aq (not between brackets) matches any string, including the empty "
747 #: build/C/man7/glob.7:54
748 msgid "B<Character classes>"
752 #: build/C/man7/glob.7:63
754 "An expression \"I<[...]>\" where the first character after the leading "
755 "\\(aq[\\(aq is not an \\(aq!\\(aq matches a single character, namely any of "
756 "the characters enclosed by the brackets. The string enclosed by the "
757 "brackets cannot be empty; therefore \\(aq]\\(aq can be allowed between the "
758 "brackets, provided that it is the first character. (Thus, \"I<[][!]>\" "
759 "matches the three characters \\(aq[\\(aq, \\(aq]\\(aq and \\(aq!\\(aq.)"
763 #: build/C/man7/glob.7:65
768 #: build/C/man7/glob.7:76
770 "There is one special convention: two characters separated by \\(aq-\\(aq "
771 "denote a range. (Thus, \"I<[A-Fa-f0-9]>\" is equivalent to "
772 "\"I<[ABCDEFabcdef0123456789]>\".) One may include \\(aq-\\(aq in its "
773 "literal meaning by making it the first or last character between the "
774 "brackets. (Thus, \"I<[]-]>\" matches just the two characters \\(aq]\\(aq "
775 "and \\(aq-\\(aq, and \"I<[--0]>\" matches the three characters \\(aq-\\(aq, "
776 "\\(aq.\\(aq, \\(aq0\\(aq, since \\(aq/\\(aq cannot be matched.)"
780 #: build/C/man7/glob.7:78
781 msgid "B<Complementation>"
785 #: build/C/man7/glob.7:84
787 "An expression \"I<[!...]>\" matches a single character, namely any character "
788 "that is not matched by the expression obtained by removing the first "
789 "\\(aq!\\(aq from it. (Thus, \"I<[!]a-]>\" matches any single character "
790 "except \\(aq]\\(aq, \\(aqa\\(aq and \\(aq-\\(aq.)"
794 #: build/C/man7/glob.7:91
796 "One can remove the special meaning of \\(aq?\\(aq, \\(aq*\\(aq and "
797 "\\(aq[\\(aq by preceding them by a backslash, or, in case this is part of a "
798 "shell command line, enclosing them in quotes. Between brackets these "
799 "characters stand for themselves. Thus, \"I<[[?*\\e]>\" matches the four "
800 "characters \\(aq[\\(aq, \\(aq?\\(aq, \\(aq*\\(aq and \\(aq\\e\\(aq."
804 #: build/C/man7/glob.7:91
810 #: build/C/man7/glob.7:98
812 "Globbing is applied on each of the components of a pathname separately. A "
813 "\\(aq/\\(aq in a pathname cannot be matched by a \\(aq?\\(aq or \\(aq*\\(aq "
814 "wildcard, or by a range like \"I<[.-0]>\". A range cannot contain an "
815 "explicit \\(aq/\\(aq character; this would lead to a syntax error."
819 #: build/C/man7/glob.7:103
821 "If a filename starts with a \\(aq.\\(aq, this character must be matched "
822 "explicitly. (Thus, I<rm\\ *> will not remove .profile, and I<tar\\ c\\ *> "
823 "will not archive all your files; I<tar\\ c\\ .> is better.)"
827 #: build/C/man7/glob.7:103
833 #: build/C/man7/glob.7:109
835 "The nice and simple rule given above: \"expand a wildcard pattern into the "
836 "list of matching pathnames\" was the original UNIX definition. It allowed "
837 "one to have patterns that expand into an empty list, as in"
841 #: build/C/man7/glob.7:112
843 msgid " xv -wait 0 *.gif *.jpg\n"
847 #: build/C/man7/glob.7:122
849 "where perhaps no *.gif files are present (and this is not an error). "
850 "However, POSIX requires that a wildcard pattern is left unchanged when it is "
851 "syntactically incorrect, or the list of matching pathnames is empty. With "
852 "I<bash> one can force the classical behavior using this command:"
855 #. In Bash v1, by setting allow_null_glob_expansion=true
857 #: build/C/man7/glob.7:125
859 msgid " shopt -s nullglob\n"
863 #: build/C/man7/glob.7:128
864 msgid "(Similar problems occur elsewhere. For example, where old scripts have"
868 #: build/C/man7/glob.7:131
870 msgid " rm \\`find . -name \"*~\"\\`\n"
874 #: build/C/man7/glob.7:134
875 msgid "new scripts require"
879 #: build/C/man7/glob.7:137
881 msgid " rm -f nosuchfile \\`find . -name \"*~\"\\`\n"
885 #: build/C/man7/glob.7:142
886 msgid "to avoid error messages from I<rm> called with an empty argument list.)"
890 #: build/C/man7/glob.7:143
892 msgid "Regular expressions"
896 #: build/C/man7/glob.7:150
898 "Note that wildcard patterns are not regular expressions, although they are a "
899 "bit similar. First of all, they match filenames, rather than text, and "
900 "secondly, the conventions are not the same: for example, in a regular "
901 "expression \\(aq*\\(aq means zero or more copies of the preceding thing."
905 #: build/C/man7/glob.7:154
907 "Now that regular expressions have bracket expressions where the negation is "
908 "indicated by a \\(aq^\\(aq, POSIX has declared the effect of a wildcard "
909 "pattern \"I<[^...]>\" to be undefined."
913 #: build/C/man7/glob.7:154
915 msgid "Character classes and internationalization"
919 #: build/C/man7/glob.7:172
921 "Of course ranges were originally meant to be ASCII ranges, so that \"I<[\\ "
922 "-%]>\" stands for \"I<[\\ !\"#$%]>\" and \"I<[a-z]>\" stands for \"any "
923 "lowercase letter\". Some UNIX implementations generalized this so that a "
924 "range X-Y stands for the set of characters with code between the codes for X "
925 "and for Y. However, this requires the user to know the character coding in "
926 "use on the local system, and moreover, is not convenient if the collating "
927 "sequence for the local alphabet differs from the ordering of the character "
928 "codes. Therefore, POSIX extended the bracket notation greatly, both for "
929 "wildcard patterns and for regular expressions. In the above we saw three "
930 "types of items that can occur in a bracket expression: namely (i) the "
931 "negation, (ii) explicit single characters, and (iii) ranges. POSIX "
932 "specifies ranges in an internationally more useful way and adds three more "
937 #: build/C/man7/glob.7:178
939 "(iii) Ranges X-Y comprise all characters that fall between X and Y "
940 "(inclusive) in the current collating sequence as defined by the "
941 "B<LC_COLLATE> category in the current locale."
945 #: build/C/man7/glob.7:180
946 msgid "(iv) Named character classes, like"
950 #: build/C/man7/glob.7:185
953 "[:alnum:] [:alpha:] [:blank:] [:cntrl:]\n"
954 "[:digit:] [:graph:] [:lower:] [:print:]\n"
955 "[:punct:] [:space:] [:upper:] [:xdigit:]\n"
959 #: build/C/man7/glob.7:194
961 "so that one can say \"I<[[:lower:]]>\" instead of \"I<[a-z]>\", and have "
962 "things work in Denmark, too, where there are three letters past \\(aqz\\(aq "
963 "in the alphabet. These character classes are defined by the B<LC_CTYPE> "
964 "category in the current locale."
968 #: build/C/man7/glob.7:200
970 "(v) Collating symbols, like \"I<[.ch.]>\" or \"I<[.a-acute.]>\", where the "
971 "string between \"I<[.>\" and \"I<.]>\" is a collating element defined for "
972 "the current locale. Note that this may be a multicharacter element."
976 #: build/C/man7/glob.7:208
978 "(vi) Equivalence class expressions, like \"I<[=a=]>\", where the string "
979 "between \"I<[=>\" and \"I<=]>\" is any collating element from its "
980 "equivalence class, as defined for the current locale. For example, "
981 "\"I<[[=a=]]>\" might be equivalent to \"I<[a\\('a\\(`a\\(:a\\(^a]>\", that "
982 "is, to \"I<[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]>\"."
986 #: build/C/man7/glob.7:214
987 msgid "B<sh>(1), B<fnmatch>(3), B<glob>(3), B<locale>(7), B<regex>(7)"
991 #: build/C/man3/re_comp.3:27
997 #: build/C/man3/re_comp.3:27
1003 #: build/C/man3/re_comp.3:30
1004 msgid "re_comp, re_exec - BSD regex functions"
1008 #: build/C/man3/re_comp.3:32
1009 msgid "B<#define _REGEX_RE_COMP>"
1013 #: build/C/man3/re_comp.3:34
1014 msgid "B<#include E<lt>sys/types.hE<gt>>"
1018 #: build/C/man3/re_comp.3:36
1019 msgid "B<#include E<lt>regex.hE<gt>>"
1023 #: build/C/man3/re_comp.3:38
1024 msgid "B<char *re_comp(const char *>I<regex>B<);>"
1028 #: build/C/man3/re_comp.3:40
1029 msgid "B<int re_exec(const char *>I<string>B<);>"
1033 #: build/C/man3/re_comp.3:52
1035 "B<re_comp>() is used to compile the null-terminated regular expression "
1036 "pointed to by I<regex>. The compiled pattern occupies a static area, the "
1037 "pattern buffer, which is overwritten by subsequent use of B<re_comp>(). If "
1038 "I<regex> is NULL, no operation is performed and the pattern buffer's "
1039 "contents are not altered."
1043 #: build/C/man3/re_comp.3:58
1045 "B<re_exec>() is used to assess whether the null-terminated string pointed "
1046 "to by I<string> matches the previously compiled I<regex>."
1050 #: build/C/man3/re_comp.3:63
1052 "B<re_comp>() returns NULL on successful compilation of I<regex> otherwise "
1053 "it returns a pointer to an appropriate error message."
1057 #: build/C/man3/re_comp.3:66
1058 msgid "B<re_exec>() returns 1 for a successful match, zero for failure."
1062 #: build/C/man3/re_comp.3:66
1068 #: build/C/man3/re_comp.3:67
1070 msgid "Multithreading (see pthreads(7))"
1074 #: build/C/man3/re_comp.3:73
1075 msgid "The B<re_comp>() and B<re_exec>() functions are not thread-safe."
1079 #: build/C/man3/re_comp.3:75
1084 #: build/C/man3/re_comp.3:79
1086 "These functions are obsolete; the functions documented in B<regcomp>(3) "
1087 "should be used instead."
1091 #: build/C/man3/re_comp.3:83
1092 msgid "B<regcomp>(3), B<regex>(7), GNU regex manual"
1096 #: build/C/man3/regex.3:30 build/C/man7/regex.7:37
1102 #: build/C/man3/regex.3:30
1108 #: build/C/man3/regex.3:33
1109 msgid "regcomp, regexec, regerror, regfree - POSIX regex functions"
1113 #: build/C/man3/regex.3:37
1116 "B<#include E<lt>sys/types.hE<gt>>\n"
1117 "B<#include E<lt>regex.hE<gt>>\n"
1121 #: build/C/man3/regex.3:39
1124 "B<int regcomp(regex_t *>I<preg>B<, const char *>I<regex>B<, int "
1129 #: build/C/man3/regex.3:43
1132 "B<int regexec(const regex_t *>I<preg>B<, const char *>I<string>B<, size_t "
1134 "B< regmatch_t >I<pmatch[]>B<, int >I<eflags>B<);>\n"
1138 #: build/C/man3/regex.3:46
1141 "B<size_t regerror(int >I<errcode>B<, const regex_t *>I<preg>B<, char "
1143 "B< size_t >I<errbuf_size>B<);>\n"
1147 #: build/C/man3/regex.3:48
1149 msgid "B<void regfree(regex_t *>I<preg>B<);>\n"
1153 #: build/C/man3/regex.3:50
1155 msgid "POSIX regex compiling"
1159 #: build/C/man3/regex.3:56
1161 "B<regcomp>() is used to compile a regular expression into a form that is "
1162 "suitable for subsequent B<regexec>() searches."
1166 #: build/C/man3/regex.3:65
1168 "B<regcomp>() is supplied with I<preg>, a pointer to a pattern buffer "
1169 "storage area; I<regex>, a pointer to the null-terminated string and "
1170 "I<cflags>, flags used to determine the type of compilation."
1174 #: build/C/man3/regex.3:72
1176 "All regular expression searching must be done via a compiled pattern buffer, "
1177 "thus B<regexec>() must always be supplied with the address of a "
1178 "B<regcomp>() initialized pattern buffer."
1182 #: build/C/man3/regex.3:77
1183 msgid "I<cflags> may be the bitwise-B<or> of one or more of the following:"
1187 #: build/C/man3/regex.3:77
1189 msgid "B<REG_EXTENDED>"
1193 #: build/C/man3/regex.3:86
1195 "Use B<POSIX> Extended Regular Expression syntax when interpreting I<regex>. "
1196 "If not set, B<POSIX> Basic Regular Expression syntax is used."
1200 #: build/C/man3/regex.3:86
1202 msgid "B<REG_ICASE>"
1206 #: build/C/man3/regex.3:92
1208 "Do not differentiate case. Subsequent B<regexec>() searches using this "
1209 "pattern buffer will be case insensitive."
1213 #: build/C/man3/regex.3:92
1215 msgid "B<REG_NOSUB>"
1219 #: build/C/man3/regex.3:102
1221 "Do not report position of matches. The I<nmatch> and I<pmatch> arguments to "
1222 "B<regexec>() are ignored if the pattern buffer supplied was compiled with "
1227 #: build/C/man3/regex.3:102
1229 msgid "B<REG_NEWLINE>"
1233 #: build/C/man3/regex.3:105
1234 msgid "Match-any-character operators don't match a newline."
1238 #: build/C/man3/regex.3:109
1240 "A nonmatching list (B<[^...]>) not containing a newline does not match a "
1245 #: build/C/man3/regex.3:119
1247 "Match-beginning-of-line operator (B<^>) matches the empty string "
1248 "immediately after a newline, regardless of whether I<eflags>, the execution "
1249 "flags of B<regexec>(), contains B<REG_NOTBOL>."
1253 #: build/C/man3/regex.3:127
1255 "Match-end-of-line operator (B<$>) matches the empty string immediately "
1256 "before a newline, regardless of whether I<eflags> contains B<REG_NOTEOL>."
1260 #: build/C/man3/regex.3:127
1262 msgid "POSIX regex matching"
1266 #: build/C/man3/regex.3:144
1268 "B<regexec>() is used to match a null-terminated string against the "
1269 "precompiled pattern buffer, I<preg>. I<nmatch> and I<pmatch> are used to "
1270 "provide information regarding the location of any matches. I<eflags> may be "
1271 "the bitwise-B<or> of one or both of B<REG_NOTBOL> and B<REG_NOTEOL> which "
1272 "cause changes in matching behavior described below."
1276 #: build/C/man3/regex.3:144
1278 msgid "B<REG_NOTBOL>"
1282 #: build/C/man3/regex.3:154
1284 "The match-beginning-of-line operator always fails to match (but see the "
1285 "compilation flag B<REG_NEWLINE> above). This flag may be used when "
1286 "different portions of a string are passed to B<regexec>() and the beginning "
1287 "of the string should not be interpreted as the beginning of the line."
1291 #: build/C/man3/regex.3:154
1293 msgid "B<REG_NOTEOL>"
1297 #: build/C/man3/regex.3:160
1299 "The match-end-of-line operator always fails to match (but see the "
1300 "compilation flag B<REG_NEWLINE> above)."
1304 #: build/C/man3/regex.3:160
1306 msgid "Byte offsets"
1310 #: build/C/man3/regex.3:185
1312 "Unless B<REG_NOSUB> was set for the compilation of the pattern buffer, it is "
1313 "possible to obtain match addressing information. I<pmatch> must be "
1314 "dimensioned to have at least I<nmatch> elements. These are filled in by "
1315 "B<regexec>() with substring match addresses. The offsets of the "
1316 "subexpression starting at the I<i>th open parenthesis are stored in "
1317 "I<pmatch[i]>. The entire regular expression's match addresses are stored in "
1318 "I<pmatch[0]>. (Note that to return the offsets of I<N> subexpression "
1319 "matches, I<nmatch> must be at least I<N+1>.) Any unused structure elements "
1320 "will contain the value -1."
1324 #: build/C/man3/regex.3:192
1326 "The I<regmatch_t> structure which is the type of I<pmatch> is defined in "
1327 "I<E<lt>regex.hE<gt>>."
1331 #: build/C/man3/regex.3:199
1334 "typedef struct {\n"
1335 " regoff_t rm_so;\n"
1336 " regoff_t rm_eo;\n"
1341 #: build/C/man3/regex.3:210
1343 "Each I<rm_so> element that is not -1 indicates the start offset of the next "
1344 "largest substring match within the string. The relative I<rm_eo> element "
1345 "indicates the end offset of the match, which is the offset of the first "
1346 "character after the matching text."
1350 #: build/C/man3/regex.3:210
1352 msgid "POSIX error reporting"
1356 #: build/C/man3/regex.3:217
1358 "B<regerror>() is used to turn the error codes that can be returned by both "
1359 "B<regcomp>() and B<regexec>() into error message strings."
1363 #: build/C/man3/regex.3:239
1365 "B<regerror>() is passed the error code, I<errcode>, the pattern buffer, "
1366 "I<preg>, a pointer to a character string buffer, I<errbuf>, and the size of "
1367 "the string buffer, I<errbuf_size>. It returns the size of the I<errbuf> "
1368 "required to contain the null-terminated error message string. If both "
1369 "I<errbuf> and I<errbuf_size> are nonzero, I<errbuf> is filled in with the "
1370 "first I<errbuf_size - 1> characters of the error message and a terminating "
1371 "null byte (\\(aq\\e0\\(aq)."
1375 #: build/C/man3/regex.3:239
1377 msgid "POSIX pattern buffer freeing"
1381 #: build/C/man3/regex.3:247
1383 "Supplying B<regfree>() with a precompiled pattern buffer, I<preg> will free "
1384 "the memory allocated to the pattern buffer by the compiling process, "
1389 #: build/C/man3/regex.3:250
1391 "B<regcomp>() returns zero for a successful compilation or an error code for "
1396 #: build/C/man3/regex.3:255
1398 "B<regexec>() returns zero for a successful match or B<REG_NOMATCH> for "
1403 #: build/C/man3/regex.3:255
1409 #: build/C/man3/regex.3:258
1410 msgid "The following errors can be returned by B<regcomp>():"
1414 #: build/C/man3/regex.3:258
1416 msgid "B<REG_BADBR>"
1420 #: build/C/man3/regex.3:261
1421 msgid "Invalid use of back reference operator."
1425 #: build/C/man3/regex.3:261
1427 msgid "B<REG_BADPAT>"
1431 #: build/C/man3/regex.3:264
1432 msgid "Invalid use of pattern operators such as group or list."
1436 #: build/C/man3/regex.3:264
1438 msgid "B<REG_BADRPT>"
1442 #: build/C/man3/regex.3:268
1444 "Invalid use of repetition operators such as using \\(aq*\\(aq as the first "
1449 #: build/C/man3/regex.3:268
1451 msgid "B<REG_EBRACE>"
1455 #: build/C/man3/regex.3:271
1456 msgid "Un-matched brace interval operators."
1460 #: build/C/man3/regex.3:271
1462 msgid "B<REG_EBRACK>"
1466 #: build/C/man3/regex.3:274
1467 msgid "Un-matched bracket list operators."
1471 #: build/C/man3/regex.3:274
1473 msgid "B<REG_ECOLLATE>"
1477 #: build/C/man3/regex.3:277
1478 msgid "Invalid collating element."
1482 #: build/C/man3/regex.3:277
1484 msgid "B<REG_ECTYPE>"
1488 #: build/C/man3/regex.3:280
1489 msgid "Unknown character class name."
1493 #: build/C/man3/regex.3:280
1499 #: build/C/man3/regex.3:284
1500 msgid "Nonspecific error. This is not defined by POSIX.2."
1504 #: build/C/man3/regex.3:284
1506 msgid "B<REG_EESCAPE>"
1510 #: build/C/man3/regex.3:287
1511 msgid "Trailing backslash."
1515 #: build/C/man3/regex.3:287
1517 msgid "B<REG_EPAREN>"
1521 #: build/C/man3/regex.3:290
1522 msgid "Un-matched parenthesis group operators."
1526 #: build/C/man3/regex.3:290
1528 msgid "B<REG_ERANGE>"
1532 #: build/C/man3/regex.3:294
1534 "Invalid use of the range operator; for example, the ending point of the "
1535 "range occurs prior to the starting point."
1539 #: build/C/man3/regex.3:294
1541 msgid "B<REG_ESIZE>"
1545 #: build/C/man3/regex.3:298
1547 "Compiled regular expression requires a pattern buffer larger than 64Kb. "
1548 "This is not defined by POSIX.2."
1552 #: build/C/man3/regex.3:298
1554 msgid "B<REG_ESPACE>"
1558 #: build/C/man3/regex.3:301
1559 msgid "The regex routines ran out of memory."
1563 #: build/C/man3/regex.3:301
1565 msgid "B<REG_ESUBREG>"
1569 #: build/C/man3/regex.3:304
1570 msgid "Invalid back reference to a subexpression."
1574 #: build/C/man3/regex.3:306 build/C/man3/wordexp.3:189
1575 msgid "POSIX.1-2001."
1579 #: build/C/man3/regex.3:309
1580 msgid "B<grep>(1), B<regex>(7)"
1584 #: build/C/man3/regex.3:312
1585 msgid "The glibc manual section, I<Regular Expression Matching>"
1589 #: build/C/man7/regex.7:37
1595 #: build/C/man7/regex.7:40
1596 msgid "regex - POSIX.2 regular expressions"
1600 #: build/C/man7/regex.7:54
1602 "Regular expressions (\"RE\"s), as defined in POSIX.2, come in two forms: "
1603 "modern REs (roughly those of I<egrep>; POSIX.2 calls these \"extended\" REs) "
1604 "and obsolete REs (roughly those of B<ed>(1); POSIX.2 \"basic\" REs). "
1605 "Obsolete REs mostly exist for backward compatibility in some old programs; "
1606 "they will be discussed at the end. POSIX.2 leaves some aspects of RE syntax "
1607 "and semantics open; \"\\*(dg\" marks decisions on these aspects that may not "
1608 "be fully portable to other POSIX.2 implementations."
1612 #: build/C/man7/regex.7:58
1614 "A (modern) RE is one\\*(dg or more nonempty\\*(dg I<branches>, separated by "
1615 "\\(aq|\\(aq. It matches anything that matches one of the branches."
1619 #: build/C/man7/regex.7:62
1621 "A branch is one\\*(dg or more I<pieces>, concatenated. It matches a match "
1622 "for the first, followed by a match for the second, and so on."
1626 #: build/C/man7/regex.7:71
1628 "A piece is an I<atom> possibly followed by a single\\*(dg \\(aq*\\(aq, "
1629 "\\(aq+\\(aq, \\(aq?\\(aq, or I<bound>. An atom followed by \\(aq*\\(aq "
1630 "matches a sequence of 0 or more matches of the atom. An atom followed by "
1631 "\\(aq+\\(aq matches a sequence of 1 or more matches of the atom. An atom "
1632 "followed by \\(aq?\\(aq matches a sequence of 0 or 1 matches of the atom."
1636 #: build/C/man7/regex.7:89
1638 "A I<bound> is \\(aq{\\(aq followed by an unsigned decimal integer, possibly "
1639 "followed by \\(aq,\\(aq possibly followed by another unsigned decimal "
1640 "integer, always followed by \\(aq}\\(aq. The integers must lie between 0 "
1641 "and B<RE_DUP_MAX> (255\\*(dg) inclusive, and if there are two of them, the "
1642 "first may not exceed the second. An atom followed by a bound containing one "
1643 "integer I<i> and no comma matches a sequence of exactly I<i> matches of the "
1644 "atom. An atom followed by a bound containing one integer I<i> and a comma "
1645 "matches a sequence of I<i> or more matches of the atom. An atom followed by "
1646 "a bound containing two integers I<i> and I<j> matches a sequence of I<i> "
1647 "through I<j> (inclusive) matches of the atom."
1651 #: build/C/man7/regex.7:106
1653 "An atom is a regular expression enclosed in \"I<()>\" (matching a match for "
1654 "the regular expression), an empty set of \"I<()>\" (matching the null "
1655 "string)\\*(dg, a I<bracket expression> (see below), \\(aq.\\(aq (matching "
1656 "any single character), \\(aq^\\(aq (matching the null string at the "
1657 "beginning of a line), \\(aq$\\(aq (matching the null string at the end of a "
1658 "line), a \\(aq\\e\\(aq followed by one of the characters "
1659 "\"I<^.[$()|*+?{\\e>\" (matching that character taken as an ordinary "
1660 "character), a \\(aq\\e\\(aq followed by any other character\\*(dg (matching "
1661 "that character taken as an ordinary character, as if the \\(aq\\e\\(aq had "
1662 "not been present\\*(dg), or a single character with no other significance "
1663 "(matching that character). A \\(aq{\\(aq followed by a character other than "
1664 "a digit is an ordinary character, not the beginning of a bound\\*(dg. It is "
1665 "illegal to end an RE with \\(aq\\e\\(aq."
1669 #: build/C/man7/regex.7:120
1671 "A I<bracket expression> is a list of characters enclosed in \"I<[]>\". It "
1672 "normally matches any single character from the list (but see below). If the "
1673 "list begins with \\(aq^\\(aq, it matches any single character (but see "
1674 "below) I<not> from the rest of the list. If two characters in the list are "
1675 "separated by \\(aq-\\(aq, this is shorthand for the full I<range> of "
1676 "characters between those two (inclusive) in the collating sequence, for "
1677 "example, \"I<[0-9]>\" in ASCII matches any decimal digit. It is "
1678 "illegal\\*(dg for two ranges to share an endpoint, for example, "
1679 "\"I<a-c-e>\". Ranges are very collating-sequence-dependent, and portable "
1680 "programs should avoid relying on them."
1684 #: build/C/man7/regex.7:131
1686 "To include a literal \\(aq]\\(aq in the list, make it the first character "
1687 "(following a possible \\(aq^\\(aq). To include a literal \\(aq-\\(aq, make "
1688 "it the first or last character, or the second endpoint of a range. To use a "
1689 "literal \\(aq-\\(aq as the first endpoint of a range, enclose it in "
1690 "\"I<[.>\" and \"I<.]>\" to make it a collating element (see below). With "
1691 "the exception of these and some combinations using \\(aq[\\(aq (see next "
1692 "paragraphs), all other special characters, including \\(aq\\e\\(aq, lose "
1693 "their special significance within a bracket expression."
1697 #: build/C/man7/regex.7:143
1699 "Within a bracket expression, a collating element (a character, a "
1700 "multicharacter sequence that collates as if it were a single character, or a "
1701 "collating-sequence name for either) enclosed in \"I<[.>\" and \"I<.]>\" "
1702 "stands for the sequence of characters of that collating element. The "
1703 "sequence is a single element of the bracket expression's list. A bracket "
1704 "expression containing a multicharacter collating element can thus match more "
1705 "than one character, for example, if the collating sequence includes a \"ch\" "
1706 "collating element, then the RE \"I<[[.ch.]]*c>\" matches the first five "
1707 "characters of \"chchcc\"."
1711 #: build/C/man7/regex.7:155
1713 "Within a bracket expression, a collating element enclosed in \"I<[=>\" and "
1714 "\"I<=]>\" is an equivalence class, standing for the sequences of characters "
1715 "of all collating elements equivalent to that one, including itself. (If "
1716 "there are no other equivalent collating elements, the treatment is as if the "
1717 "enclosing delimiters were \"I<[.>\" and \"I<.]>\".) For example, if o and "
1718 "\\o'o^' are the members of an equivalence class, then \"I<[[=o=]]>\", "
1719 "\"I<[[=\\o'o^'=]]>\", and \"I<[o\\o'o^']>\" are all synonymous. An "
1720 "equivalence class may not\\*(dg be an endpoint of a range."
1724 #: build/C/man7/regex.7:161
1726 "Within a bracket expression, the name of a I<character class> enclosed in "
1727 "\"I<[:>\" and \"I<:]>\" stands for the list of all characters belonging to "
1728 "that class. Standard character class names are:"
1732 #: build/C/man7/regex.7:165
1734 msgid "alnum\tdigit\tpunct\n"
1738 #: build/C/man7/regex.7:166
1740 msgid "alpha\tgraph\tspace\n"
1744 #: build/C/man7/regex.7:167
1746 msgid "blank\tlower\tupper\n"
1750 #: build/C/man7/regex.7:168
1752 msgid "cntrl\tprint\txdigit\n"
1755 #. As per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666
1756 #. The following does not seem to apply in the glibc implementation
1758 #. There are two special cases\*(dg of bracket expressions:
1759 #. the bracket expressions "\fI[[:<:]]\fP" and "\fI[[:>:]]\fP" match
1760 #. the null string at the beginning and end of a word respectively.
1761 #. A word is defined as a sequence of
1763 #. which is neither preceded nor followed by
1765 #. A word character is an
1767 #. character (as defined by
1769 #. or an underscore.
1770 #. This is an extension,
1771 #. compatible with but not specified by POSIX.2,
1772 #. and should be used with
1773 #. caution in software intended to be portable to other systems.
1775 #: build/C/man7/regex.7:195
1777 "These stand for the character classes defined in B<wctype>(3). A locale may "
1778 "provide others. A character class may not be used as an endpoint of a "
1783 #: build/C/man7/regex.7:207
1785 "In the event that an RE could match more than one substring of a given "
1786 "string, the RE matches the one starting earliest in the string. If the RE "
1787 "could match more than one substring starting at that point, it matches the "
1788 "longest. Subexpressions also match the longest possible substrings, subject "
1789 "to the constraint that the whole match be as long as possible, with "
1790 "subexpressions starting earlier in the RE taking priority over ones starting "
1791 "later. Note that higher-level subexpressions thus take priority over their "
1792 "lower-level component subexpressions."
1796 #: build/C/man7/regex.7:219
1798 "Match lengths are measured in characters, not collating elements. A null "
1799 "string is considered longer than no match at all. For example, \"I<bb*>\" "
1800 "matches the three middle characters of \"abbbc\", "
1801 "\"I<(wee|week)(knights|nights)>\" matches all ten characters of "
1802 "\"weeknights\", when \"I<(.*).*>\" is matched against \"abc\" the "
1803 "parenthesized subexpression matches all three characters, and when "
1804 "\"I<(a*)*>\" is matched against \"bc\" both the whole RE and the "
1805 "parenthesized subexpression match the null string."
1809 #: build/C/man7/regex.7:230
1811 "If case-independent matching is specified, the effect is much as if all case "
1812 "distinctions had vanished from the alphabet. When an alphabetic that exists "
1813 "in multiple cases appears as an ordinary character outside a bracket "
1814 "expression, it is effectively transformed into a bracket expression "
1815 "containing both cases, for example, \\(aqx\\(aq becomes \"I<[xX]>\". When "
1816 "it appears inside a bracket expression, all case counterparts of it are "
1817 "added to the bracket expression, so that, for example, \"I<[x]>\" becomes "
1818 "\"I<[xX]>\" and \"I<[^x]>\" becomes \"I<[^xX]>\"."
1822 #: build/C/man7/regex.7:236
1824 "No particular limit is imposed on the length of REs\\*(dg. Programs "
1825 "intended to be portable should not employ REs longer than 256 bytes, as an "
1826 "implementation can refuse to accept such REs and remain POSIX-compliant."
1830 #: build/C/man7/regex.7:252
1832 "Obsolete (\"basic\") regular expressions differ in several respects. "
1833 "\\(aq|\\(aq, \\(aq+\\(aq, and \\(aq?\\(aq are ordinary characters and there "
1834 "is no equivalent for their functionality. The delimiters for bounds are "
1835 "\"I<\\e{>\" and \"I<\\e}>\", with \\(aq{\\(aq and \\(aq}\\(aq by themselves "
1836 "ordinary characters. The parentheses for nested subexpressions are "
1837 "\"I<\\e(>\" and \"I<\\e)>\", with \\(aq(\\(aq and \\(aq)\\(aq by themselves "
1838 "ordinary characters. \\(aq^\\(aq is an ordinary character except at the "
1839 "beginning of the RE or\\*(dg the beginning of a parenthesized subexpression, "
1840 "\\(aq$\\(aq is an ordinary character except at the end of the RE or\\*(dg "
1841 "the end of a parenthesized subexpression, and \\(aq*\\(aq is an ordinary "
1842 "character if it appears at the beginning of the RE or the beginning of a "
1843 "parenthesized subexpression (after a possible leading \\(aq^\\(aq)."
1847 #: build/C/man7/regex.7:260
1849 "Finally, there is one new type of atom, a I<back reference>: \\(aq\\e\\(aq "
1850 "followed by a nonzero decimal digit I<d> matches the same sequence of "
1851 "characters matched by the I<d>th parenthesized subexpression (numbering "
1852 "subexpressions by the positions of their opening parentheses, left to "
1853 "right), so that, for example, \"I<\\e([bc]\\e)\\e1>\" matches \"bb\" or "
1854 "\"cc\" but not \"bc\"."
1858 #: build/C/man7/regex.7:262
1859 msgid "Having two kinds of REs is a botch."
1863 #: build/C/man7/regex.7:268
1865 "The current POSIX.2 spec says that \\(aq)\\(aq is an ordinary character in "
1866 "the absence of an unmatched \\(aq(\\(aq; this was an unintentional result of "
1867 "a wording error, and change is likely. Avoid relying on it."
1871 #: build/C/man7/regex.7:275
1873 "Back references are a dreadful botch, posing major problems for efficient "
1874 "implementations. They are also somewhat vaguely defined (does "
1875 "\"I<a\\e(\\e(b\\e)*\\e2\\e)*d>\" match \"abbbd\"?). Avoid using them."
1878 #. As per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295666
1879 #. The following does not seem to apply in the glibc implementation
1881 #. The syntax for word boundaries is incredibly ugly.
1883 #: build/C/man7/regex.7:283
1885 "POSIX.2's specification of case-independent matching is vague. The \"one "
1886 "case implies all cases\" definition given above is current consensus among "
1887 "implementors as to the right interpretation."
1891 #: build/C/man7/regex.7:283
1896 #. Sigh... The page license means we must have the author's name
1897 #. in the formatted output.
1899 #: build/C/man7/regex.7:287
1900 msgid "This page was taken from Henry Spencer's regex package."
1904 #: build/C/man7/regex.7:290
1905 msgid "B<grep>(1), B<regex>(3)"
1909 #: build/C/man7/regex.7:292
1910 msgid "POSIX.2, section 2.8 (Regular Expression Notation)."
1914 #: build/C/man3/wordexp.3:24
1920 #: build/C/man3/wordexp.3:24
1926 #: build/C/man3/wordexp.3:27
1927 msgid "wordexp, wordfree - perform word expansion like a posix-shell"
1931 #: build/C/man3/wordexp.3:29
1932 msgid "B<#include E<lt>wordexp.hE<gt>>"
1936 #: build/C/man3/wordexp.3:31
1937 msgid "B<int wordexp(const char *>I<s>B<, wordexp_t *>I<p>B<, int >I<flags>B<);>"
1941 #: build/C/man3/wordexp.3:33
1942 msgid "B<void wordfree(wordexp_t *>I<p>B<);>"
1946 #: build/C/man3/wordexp.3:37
1947 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1951 #: build/C/man3/wordexp.3:42
1952 msgid "B<wordexp>(), B<wordfree>(): _XOPEN_SOURCE"
1956 #: build/C/man3/wordexp.3:76
1958 "The function B<wordexp>() performs a shell-like expansion of the string "
1959 "I<s> and returns the result in the structure pointed to by I<p>. The data "
1960 "type I<wordexp_t> is a structure that at least has the fields I<we_wordc>, "
1961 "I<we_wordv>, and I<we_offs>. The field I<we_wordc> is a I<size_t> that "
1962 "gives the number of words in the expansion of I<s>. The field I<we_wordv> "
1963 "is a I<char\\ **> that points to the array of words found. The field "
1964 "I<we_offs> of type I<size_t> is sometimes (depending on I<flags>, see below) "
1965 "used to indicate the number of initial elements in the I<we_wordv> array "
1966 "that should be filled with NULLs."
1970 #: build/C/man3/wordexp.3:84
1972 "The function B<wordfree>() frees the allocated memory again. More "
1973 "precisely, it does not free its argument, but it frees the array I<we_wordv> "
1974 "and the strings that points to."
1978 #: build/C/man3/wordexp.3:84
1980 msgid "The string argument"
1984 #: build/C/man3/wordexp.3:94
1986 "Since the expansion is the same as the expansion by the shell (see B<sh>(1)) "
1987 "of the parameters to a command, the string I<s> must not contain characters "
1988 "that would be illegal in shell command parameters. In particular, there "
1989 "must not be any unescaped newline or |, &, ;, E<lt>, E<gt>, (, ), {, } "
1990 "characters outside a command substitution or parameter substitution context."
1994 #: build/C/man3/wordexp.3:100
1996 "If the argument I<s> contains a word that starts with an unquoted comment "
1997 "character #, then it is unspecified whether that word and all following "
1998 "words are ignored, or the # is treated as a non-comment character."
2002 #: build/C/man3/wordexp.3:100
2004 msgid "The expansion"
2008 #: build/C/man3/wordexp.3:107
2010 "The expansion done consists of the following stages: tilde expansion "
2011 "(replacing ~user by user's home directory), variable substitution (replacing "
2012 "$FOO by the value of the environment variable FOO), command substitution "
2013 "(replacing $(command) or \\`command\\` by the output of command), arithmetic "
2014 "expansion, field splitting, wildcard expansion, quote removal."
2018 #: build/C/man3/wordexp.3:110
2020 "The result of expansion of special parameters ($@, $*, $#, $?, $-, $$, $!, "
2021 "$0) is unspecified."
2025 #: build/C/man3/wordexp.3:113
2027 "Field splitting is done using the environment variable $IFS. If it is not "
2028 "set, the field separators are space, tab and newline."
2032 #: build/C/man3/wordexp.3:113
2034 msgid "The output array"
2038 #: build/C/man3/wordexp.3:117
2039 msgid "The array I<we_wordv> contains the words found, followed by a NULL."
2043 #: build/C/man3/wordexp.3:117
2045 msgid "The flags argument"
2049 #: build/C/man3/wordexp.3:121
2050 msgid "The I<flag> argument is a bitwise inclusive OR of the following values:"
2054 #: build/C/man3/wordexp.3:121
2056 msgid "B<WRDE_APPEND>"
2060 #: build/C/man3/wordexp.3:124
2061 msgid "Append the words found to the array resulting from a previous call."
2065 #: build/C/man3/wordexp.3:124
2067 msgid "B<WRDE_DOOFFS>"
2071 #: build/C/man3/wordexp.3:132
2073 "Insert I<we_offs> initial NULLs in the array I<we_wordv>. (These are not "
2074 "counted in the returned I<we_wordc>.)"
2078 #: build/C/man3/wordexp.3:132
2080 msgid "B<WRDE_NOCMD>"
2084 #: build/C/man3/wordexp.3:135
2085 msgid "Don't do command substitution."
2089 #: build/C/man3/wordexp.3:135
2091 msgid "B<WRDE_REUSE>"
2095 #: build/C/man3/wordexp.3:145
2097 "The argument I<p> resulted from a previous call to B<wordexp>(), and "
2098 "B<wordfree>() was not called. Reuse the allocated storage."
2102 #: build/C/man3/wordexp.3:145
2104 msgid "B<WRDE_SHOWERR>"
2108 #: build/C/man3/wordexp.3:154
2110 "Normally during command substitution I<stderr> is redirected to "
2111 "I</dev/null>. This flag specifies that I<stderr> is not to be redirected."
2115 #: build/C/man3/wordexp.3:154
2117 msgid "B<WRDE_UNDEF>"
2121 #: build/C/man3/wordexp.3:157
2122 msgid "Consider it an error if an undefined shell variable is expanded."
2126 #: build/C/man3/wordexp.3:161
2128 "In case of success 0 is returned. In case of error one of the following "
2129 "five values is returned."
2133 #: build/C/man3/wordexp.3:161
2135 msgid "B<WRDE_BADCHAR>"
2139 #: build/C/man3/wordexp.3:164
2140 msgid "Illegal occurrence of newline or one of |, &, ;, E<lt>, E<gt>, (, ), {, }."
2144 #: build/C/man3/wordexp.3:164
2146 msgid "B<WRDE_BADVAL>"
2150 #: build/C/man3/wordexp.3:170
2152 "An undefined shell variable was referenced, and the B<WRDE_UNDEF> flag told "
2153 "us to consider this an error."
2157 #: build/C/man3/wordexp.3:170
2159 msgid "B<WRDE_CMDSUB>"
2163 #: build/C/man3/wordexp.3:175
2165 "Command substitution requested, but the B<WRDE_NOCMD> flag told us to "
2166 "consider this an error."
2170 #: build/C/man3/wordexp.3:175
2172 msgid "B<WRDE_NOSPACE>"
2176 #: build/C/man3/wordexp.3:178
2177 msgid "Out of memory."
2181 #: build/C/man3/wordexp.3:178
2183 msgid "B<WRDE_SYNTAX>"
2187 #: build/C/man3/wordexp.3:182
2188 msgid "Shell syntax error, such as unbalanced parentheses or unmatched quotes."
2192 #: build/C/man3/wordexp.3:182
2198 #: build/C/man3/wordexp.3:187
2199 msgid "B<wordexp>() and B<wordfree>() are provided in glibc since version 2.1."
2203 #: build/C/man3/wordexp.3:192
2205 "The output of the following example program is approximately that of \"ls "
2210 #: build/C/man3/wordexp.3:197
2213 "#include E<lt>stdio.hE<gt>\n"
2214 "#include E<lt>stdlib.hE<gt>\n"
2215 "#include E<lt>wordexp.hE<gt>\n"
2219 #: build/C/man3/wordexp.3:204
2223 "main(int argc, char **argv)\n"
2231 #: build/C/man3/wordexp.3:212
2234 " wordexp(\"[a-c]*.c\", &p, 0);\n"
2235 " w = p.we_wordv;\n"
2236 " for (i = 0; i E<lt> p.we_wordc; i++)\n"
2237 " printf(\"%s\\en\", w[i]);\n"
2239 " exit(EXIT_SUCCESS);\n"
2244 #: build/C/man3/wordexp.3:216
2245 msgid "B<fnmatch>(3), B<glob>(3)"