1/* $XTermId: xstrings.h,v 1.31 2024/12/01 20:27:00 tom Exp $ */
2
3/*
4 * Copyright 2000-2016,2024 by Thomas E. Dickey
5 *
6 *                         All Rights Reserved
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be included
17 * in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
23 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 *
27 * Except as contained in this notice, the name(s) of the above copyright
28 * holders shall not be used in advertising or otherwise to promote the
29 * sale, use or other dealings in this Software without prior written
30 * authorization.
31 */
32
33#ifndef included_xstrings_h
34#define included_xstrings_h 1
35/* *INDENT-OFF* */
36
37#include <X11/Intrinsic.h>
38#include <pwd.h>
39
40#define OkPasswd(p) ((p)->pw_name != NULL && (p)->pw_name[0] != 0)
41
42extern Boolean x_getpwnam(const char * /* name */, struct passwd * /* result */);
43extern Boolean x_getpwuid(uid_t /* uid */, struct passwd * /* result */);
44extern String x_nonempty(String /* s */);
45extern String x_skip_blanks(String /* s */);
46extern String x_skip_nonblanks(String /* s */);
47extern char **x_splitargs(const char * /* command */);
48extern char *x_basename(char * /* name */);
49extern char *x_decode_hex(const char * /* source */, const char ** /* next */);
50extern char *x_encode_hex(const char * /* source */);
51extern char *x_getenv(const char * /* name */);
52extern char *x_getlogin(uid_t /* uid */, struct passwd * /* in_out */);
53extern char *x_strdup(const char * /* s */);
54extern char *x_strindex(char * /* s1 */, const char * /* s2 */);
55extern char *x_strtrim(const char * /* s */);
56extern char *x_strrtrim(const char * /* s */);
57extern char x_toupper(int /* ch */);
58extern int x_hex2int(int /* ch */);
59extern int x_strcasecmp(const char * /* s1 */, const char * /* s2 */);
60extern int x_strncasecmp(const char * /* s1 */, const char * /* s2 */, unsigned  /* n */);
61extern int x_wildstrcmp(const char * /* pattern */, const char * /* actual */);
62extern unsigned x_countargv(char ** /* argv */);
63extern void x_appendargv(char ** /* target */, char ** /* source */);
64extern void x_freeargs(char ** /* argv */);
65
66/* *INDENT-ON* */
67
68#endif /* included_xstrings_h */
69