Annotation of embedaddon/curl/m4/xc-translit.m4, revision 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>