Annotation of embedaddon/curl/m4/xc-translit.m4, revision 1.1.1.1
1.1 misho 1: #---------------------------------------------------------------------------
2: #
3: # xc-translit.m4
4: #
5: # Copyright (c) 2011 - 2020, Daniel Stenberg <daniel@haxx.se>
6: #
7: # Permission to use, copy, modify, and distribute this software for any
8: # purpose with or without fee is hereby granted, provided that the above
9: # copyright notice and this permission notice appear in all copies.
10: #
11: # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12: # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13: # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14: # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15: # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16: # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17: # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18: #
19: #---------------------------------------------------------------------------
20:
21: # File version for 'aclocal' use. Keep it a single number.
22: # serial 2
23:
24:
25: dnl XC_SH_TR_SH (expression)
26: dnl -------------------------------------------------
27: dnl Shell execution time transliteration of 'expression'
28: dnl argument, where all non-alfanumeric characters are
29: dnl converted to the underscore '_' character.
30: dnl Normal shell expansion and substitution takes place
31: dnl for given 'expression' at shell execution time before
32: dnl transliteration is applied to it.
33:
34: AC_DEFUN([XC_SH_TR_SH],
35: [`echo "$1" | sed 's/[[^a-zA-Z0-9_]]/_/g'`])
36:
37:
38: dnl XC_SH_TR_SH_EX (expression, [extra])
39: dnl -------------------------------------------------
40: dnl Like XC_SH_TR_SH but transliterating characters
41: dnl given in 'extra' argument to lowercase 'p'. For
42: dnl example [*+], [*], and [+] are valid 'extra' args.
43:
44: AC_DEFUN([XC_SH_TR_SH_EX],
45: [ifelse([$2], [],
46: [XC_SH_TR_SH([$1])],
47: [`echo "$1" | sed 's/[[$2]]/p/g' | sed 's/[[^a-zA-Z0-9_]]/_/g'`])])
48:
49:
50: dnl XC_M4_TR_SH (expression)
51: dnl -------------------------------------------------
52: dnl m4 execution time transliteration of 'expression'
53: dnl argument, where all non-alfanumeric characters are
54: dnl converted to the underscore '_' character.
55:
56: AC_DEFUN([XC_M4_TR_SH],
57: [patsubst(XC_QPATSUBST(XC_QUOTE($1),
58: [[^a-zA-Z0-9_]], [_]),
59: [\(_\(.*\)_\)], [\2])])
60:
61:
62: dnl XC_M4_TR_SH_EX (expression, [extra])
63: dnl -------------------------------------------------
64: dnl Like XC_M4_TR_SH but transliterating characters
65: dnl given in 'extra' argument to lowercase 'p'. For
66: dnl example [*+], [*], and [+] are valid 'extra' args.
67:
68: AC_DEFUN([XC_M4_TR_SH_EX],
69: [ifelse([$2], [],
70: [XC_M4_TR_SH([$1])],
71: [patsubst(XC_QPATSUBST(XC_QPATSUBST(XC_QUOTE($1),
72: [[$2]],
73: [p]),
74: [[^a-zA-Z0-9_]], [_]),
75: [\(_\(.*\)_\)], [\2])])])
76:
77:
78: dnl XC_SH_TR_CPP (expression)
79: dnl -------------------------------------------------
80: dnl Shell execution time transliteration of 'expression'
81: dnl argument, where all non-alfanumeric characters are
82: dnl converted to the underscore '_' character and alnum
83: dnl characters are converted to uppercase.
84: dnl Normal shell expansion and substitution takes place
85: dnl for given 'expression' at shell execution time before
86: dnl transliteration is applied to it.
87:
88: AC_DEFUN([XC_SH_TR_CPP],
89: [`echo "$1" | dnl
90: sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' | dnl
91: sed 's/[[^A-Z0-9_]]/_/g'`])
92:
93:
94: dnl XC_SH_TR_CPP_EX (expression, [extra])
95: dnl -------------------------------------------------
96: dnl Like XC_SH_TR_CPP but transliterating characters
97: dnl given in 'extra' argument to uppercase 'P'. For
98: dnl example [*+], [*], and [+] are valid 'extra' args.
99:
100: AC_DEFUN([XC_SH_TR_CPP_EX],
101: [ifelse([$2], [],
102: [XC_SH_TR_CPP([$1])],
103: [`echo "$1" | dnl
104: sed 's/[[$2]]/P/g' | dnl
105: sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' | dnl
106: sed 's/[[^A-Z0-9_]]/_/g'`])])
107:
108:
109: dnl XC_M4_TR_CPP (expression)
110: dnl -------------------------------------------------
111: dnl m4 execution time transliteration of 'expression'
112: dnl argument, where all non-alfanumeric characters are
113: dnl converted to the underscore '_' character and alnum
114: dnl characters are converted to uppercase.
115:
116: AC_DEFUN([XC_M4_TR_CPP],
117: [patsubst(XC_QPATSUBST(XC_QTRANSLIT(XC_QUOTE($1),
118: [abcdefghijklmnopqrstuvwxyz],
119: [ABCDEFGHIJKLMNOPQRSTUVWXYZ]),
120: [[^A-Z0-9_]], [_]),
121: [\(_\(.*\)_\)], [\2])])
122:
123:
124: dnl XC_M4_TR_CPP_EX (expression, [extra])
125: dnl -------------------------------------------------
126: dnl Like XC_M4_TR_CPP but transliterating characters
127: dnl given in 'extra' argument to uppercase 'P'. For
128: dnl example [*+], [*], and [+] are valid 'extra' args.
129:
130: AC_DEFUN([XC_M4_TR_CPP_EX],
131: [ifelse([$2], [],
132: [XC_M4_TR_CPP([$1])],
133: [patsubst(XC_QPATSUBST(XC_QTRANSLIT(XC_QPATSUBST(XC_QUOTE($1),
134: [[$2]],
135: [P]),
136: [abcdefghijklmnopqrstuvwxyz],
137: [ABCDEFGHIJKLMNOPQRSTUVWXYZ]),
138: [[^A-Z0-9_]], [_]),
139: [\(_\(.*\)_\)], [\2])])])
140:
141:
142: dnl XC_QUOTE (expression)
143: dnl -------------------------------------------------
144: dnl Expands to quoted result of 'expression' expansion.
145:
146: AC_DEFUN([XC_QUOTE],
147: [[$@]])
148:
149:
150: dnl XC_QPATSUBST (string, regexp[, repl])
151: dnl -------------------------------------------------
152: dnl Expands to quoted result of 'patsubst' expansion.
153:
154: AC_DEFUN([XC_QPATSUBST],
155: [XC_QUOTE(patsubst([$1], [$2], [$3]))])
156:
157:
158: dnl XC_QTRANSLIT (string, chars, repl)
159: dnl -------------------------------------------------
160: dnl Expands to quoted result of 'translit' expansion.
161:
162: AC_DEFUN([XC_QTRANSLIT],
163: [XC_QUOTE(translit([$1], [$2], [$3]))])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>