Uname: Linux 50-6-4-53.bluehost.com 5.14.0-611.41.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Mar 19 03:50:11 EDT 2026 x86_64
User: 1011 (dccreditrepairto)
Group: 1010 (dccreditrepairto)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
////usr///share/et      ( Reset | Go to )
File Name: et_c.awk
BEGIN { 
if ( length(outfn) == 0) {
    outfn = outfile
}
char_shift=64
## "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
c2n["A"]=1
c2n["B"]=2
c2n["C"]=3
c2n["D"]=4
c2n["E"]=5
c2n["F"]=6
c2n["G"]=7
c2n["H"]=8
c2n["I"]=9
c2n["J"]=10
c2n["K"]=11
c2n["L"]=12
c2n["M"]=13
c2n["N"]=14
c2n["O"]=15
c2n["P"]=16
c2n["Q"]=17
c2n["R"]=18
c2n["S"]=19
c2n["T"]=20
c2n["U"]=21
c2n["V"]=22
c2n["W"]=23
c2n["X"]=24
c2n["Y"]=25
c2n["Z"]=26
c2n["a"]=27
c2n["b"]=28
c2n["c"]=29
c2n["d"]=30
c2n["e"]=31
c2n["f"]=32
c2n["g"]=33
c2n["h"]=34
c2n["i"]=35
c2n["j"]=36
c2n["k"]=37
c2n["l"]=38
c2n["m"]=39
c2n["n"]=40
c2n["o"]=41
c2n["p"]=42
c2n["q"]=43
c2n["r"]=44
c2n["s"]=45
c2n["t"]=46
c2n["u"]=47
c2n["v"]=48
c2n["w"]=49
c2n["x"]=50
c2n["y"]=51
c2n["z"]=52
c2n["0"]=53
c2n["1"]=54
c2n["2"]=55
c2n["3"]=56
c2n["4"]=57
c2n["5"]=58
c2n["6"]=59
c2n["7"]=60
c2n["8"]=61
c2n["9"]=62
c2n["_"]=63
}
/^#/ { next }
/^[ \t]*(error_table|et)[ \t]+[a-zA-Z][a-zA-Z0-9_]+/ {
    table_number = 0
    mod_base = 1000000
    if (NF > 2) {
        table_name = $3
        base_name = $2
    } else {
        table_name = $2
        base_name = table_name
    }
    for(i=1; i<=length(base_name); i++) {
        table_number=(table_number*char_shift)+c2n[substr(base_name,i,1)]
    }

    # We start playing *_high, *low games here because the some
    # awk programs do not have the necessary precision (sigh)
    tab_base_low = table_number % mod_base
    if (tab_base_low < 0) {
        # Work around stupid bug in the ARM libm
        tab_base_low = tab_base_low + mod_base
    }
    tab_base_high = int(table_number / mod_base)
    tab_base_sign = 1;

    # figure out: table_number_base=table_number*256
    tab_base_low = tab_base_low * 256
    tab_base_high = (tab_base_high * 256) + \
            int(tab_base_low / mod_base)
    tab_base_low = tab_base_low % mod_base
    if (tab_base_low < 0) {
        # Work around stupid bug in the ARM libm
        tab_base_low = tab_base_low + mod_base
    }

    if (table_number > 128*256*256) {
        # figure out:  table_number_base -= 256*256*256*256
        # sub_high, sub_low is 256*256*256*256
        sub_low = 256*256*256 % mod_base
        sub_high = int(256*256*256 / mod_base)

        sub_low = sub_low * 256
        sub_high = (sub_high * 256) + int(sub_low / mod_base)
        sub_low = sub_low % mod_base

        tab_base_low = sub_low - tab_base_low;
        tab_base_high = sub_high - tab_base_high;
        tab_base_sign = -1;
        if (tab_base_low < 0) {
            tab_base_low = tab_base_low + mod_base
            tab_base_high--
        }
    }
    print "/*" > outfile
    print " * " outfn ":" > outfile
    print " * This file is automatically generated; please do not edit it." > outfile
    print " */" > outfile

    print "" > outfile
    print "#include <stdlib.h>" > outfile
    print "" > outfile
    print "#define N_(a) a" > outfile
    print "" > outfile
    print "static const char * const text[] = {" > outfile
    table_item_count = 0
}

(continuation == 1) && ($0 ~ /\\[ \t]*$/) {
    text=substr($0,1,length($0)-1);
#    printf "\t\t\"%s\"\n", text > outfile
    cont_buf=cont_buf text;
}

(continuation == 1) && ($0 ~ /"[ \t]*$/) {
#    printf "\t\t\"%s,\n", $0 > outfile
    printf "\tN_(%s),\n", cont_buf $0 > outfile
    continuation = 0;
}

/^[ \t]*(error_code|ec)[ \t]+[A-Z_0-9]+,[^ \t]/ {
    # Be tolerant to missing whitespace after `,' ...
    sub(/,/, ", ")
}

/^[ \t]*(error_code|ec)[ \t]+[A-Z_0-9]+,[ \t]*$/ {
    table_item_count++
    skipone=1
    next
}

/^[ \t]*(error_code|ec)[ \t]+[A-Z_0-9]+,[ \t]*".*"[ \t]*$/ {
    text=""
    for (i=3; i<=NF; i++) { 
        text = text FS $i
    }
    text=substr(text,2,length(text)-1);
    printf "\tN_(%s),\n", text > outfile
    table_item_count++
}

/^[ \t]*(error_code|ec)[ \t]+[A-Z_0-9]+,[ \t]*".*\\[ \t]*$/ {
    text=""
    for (i=3; i<=NF; i++) { 
        text = text FS $i
    }
    text=substr(text,2,length(text)-2);
#    printf "\t%s\"\n", text > outfile
    cont_buf=text
    table_item_count++
    continuation++;
}

/^[ \t]*".*\\[ \t]*$/ {
    if (skipone) {
        text=substr($0,1,length($0)-1);
#        printf "\t%s\"\n", text > outfile
        cont_buf=text
        continuation++;
    }
    skipone=0
}


    if (skipone) {
        printf "\tN_(%s),\n", $0 > outfile
    }
    skipone=0
}

/^[ \t]*(prefix)$/ {
    prefix_str = ""
}

/^[ \t]*(prefix)[ \t]+[A-Z_0-9]+/ {
    prefix_str = $2 "_"
}

/^[ \t]*(index)[ \t]+[A-Z_0-9]+/ {
    new_idx = $2
    for (i = table_item_count ; i < new_idx; i++) {
        printf "\tN_(\"Reserved %s error (%d)\"),\n", \
            table_name, table_item_count++ > outfile
    }
}

END {
    print "    0" > outfile
    print "};" > outfile
    print "" > outfile
    print "struct error_table {" > outfile
    print "    char const * const * msgs;" > outfile
    print "    long base;" > outfile
    print "    int n_msgs;" > outfile
    print "};" > outfile
    print "struct et_list {" > outfile
    print "    struct et_list *next;" > outfile
    print "    const struct error_table * table;" > outfile
    print "};" > outfile
    print "extern struct et_list *_et_list;" > outfile
    print "" > outfile
    if (tab_base_high == 0) {
        print "const struct error_table et_" table_name "_error_table = { text, " \
        sprintf("%dL, %d };", tab_base_sign*tab_base_low, \
        table_item_count) > outfile
    } else {
        print "const struct error_table et_" table_name "_error_table = { text, " \
        sprintf("%d%06dL, %d };", tab_base_sign*tab_base_high, \
        tab_base_low, table_item_count) > outfile
    }
    print "" > outfile
    print "static struct et_list link = { 0, 0 };" > outfile
    print "" > outfile
    print "void initialize_" table_name "_error_table_r(struct et_list **list);" > outfile
    print "void initialize_" table_name "_error_table(void);" > outfile
    print "" > outfile
    print "void initialize_" table_name "_error_table(void) {" > outfile
    print "    initialize_" table_name "_error_table_r(&_et_list);" > outfile
    print "}" > outfile
    print "" > outfile
    print "/* For Heimdal compatibility */" > outfile
    print "void initialize_" table_name "_error_table_r(struct et_list **list)" > outfile
    print "{" > outfile
    print "    struct et_list *et, **end;" > outfile
    print "" > outfile
    print "    for (end = list, et = *list; et; end = &et->next, et = et->next)" > outfile
    print "        if (et->table->msgs == text)" > outfile
    print "            return;" > outfile
    print "    et = malloc(sizeof(struct et_list));" > outfile
    print "    if (et == 0) {" > outfile
    print "        if (!link.table)" > outfile
    print "            et = &link;" > outfile
    print "        else" > outfile
    print "            return;" > outfile
    print "    }" > outfile
    print "    et->table = &et_" table_name "_error_table;" > outfile
    print "    et->next = 0;" > outfile
    print "    *end = et;" > outfile
    print "}" > outfile
}

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL