⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 make_exports.awk

📁 linux subdivision ying gai ke yi le ba
💻 AWK
字号:
BEGIN {    printf("/*\n")    printf(" * THIS FILE WAS AUTOGENERATED BY make_exports.awk\n")    printf(" *\n")    printf(" * This is an ugly hack that needs to be here, so\n")    printf(" * that libtool will link all of the APR functions\n")    printf(" * into server regardless of whether the base server\n")    printf(" * uses them.\n")    printf(" */\n")    printf("\n")    printf("#define CORE_PRIVATE\n")    printf("\n")        for (i = 1; i < ARGC; i++) {        file = ARGV[i]        sub("([^/]*[/])*", "", file)        printf("#include \"%s\"\n", file)    }    printf("\n")    printf("const void *ap_ugly_hack = NULL;\n")    printf("\n")        TYPE_NORMAL = 0    TYPE_HEADER = 1    stackptr = 0}function push(line) {    stack[stackptr] = line    stackptr++}function do_output() {    printf("/*\n")    printf(" * %s\n", FILENAME)    printf(" */\n")        for (i = 0; i < stackptr; i++) {        printf("%s\n", stack[i])    }        stackptr = 0    printf("\n");}function enter_scope(type) {    scope++    scope_type[scope] = type    scope_stack[scope] = stackptr    delete scope_used[scope]}function leave_scope() {    used = scope_used[scope]       if (!used)        stackptr = scope_stack[scope]    scope--    if (used) {        scope_used[scope] = 1                if (!scope)            do_output()    }}function add_symbol(symbol) {    if (!index(symbol, "#")) {        push("const void *ap_hack_" symbol " = (const void *)" symbol ";")        scope_used[scope] = 1    }}/^[ \t]*AP[RUI]?_(CORE_)?DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {    sub("[ \t]*AP[RUI]?_(CORE_)?DECLARE[^(]*[(][^)]*[)][ \t]*", "")    sub("[(].*", "")    sub("([^ ]* (^([ \t]*[(])))+", "")    add_symbol($0)    next}/^[ \t]*AP_DECLARE_HOOK[^(]*[(][^)]*/ {    split($0, args, ",")    symbol = args[2]    sub("^[ \t]+", "", symbol)    sub("[ \t]+$", "", symbol)    add_symbol("ap_hook_" symbol)    add_symbol("ap_hook_get_" symbol)    add_symbol("ap_run_" symbol)    next}/^[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(][^)]*[)]/ {    sub("[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(]", "", $0)    sub("[)].*$", "", $0)    add_symbol("apr_" $0 "_pool_get")    next}/^[ \t]*APR_DECLARE_INHERIT_SET[^(]*[(][^)]*[)]/ {    sub("[ \t]*APR_DECLARE_INHERIT_SET[^(]*[(]", "", $0)    sub("[)].*$", "", $0)    add_symbol("apr_" $0 "_inherit_set")    next}/^[ \t]*APR_DECLARE_INHERIT_UNSET[^(]*[(][^)]*[)]/ {    sub("[ \t]*APR_DECLARE_INHERIT_UNSET[^(]*[(]", "", $0)    sub("[)].*$", "", $0)    add_symbol("apr_" $0 "_inherit_unset")    next}/^#[ \t]*if(ndef| !defined[(])([^_]*_)*H/ {    enter_scope(TYPE_HEADER)    next}/^#[ \t]*if([n]?def)? / {    enter_scope(TYPE_NORMAL)    push($0)    next}/^#[ \t]*endif/ {    if (scope_type[scope] == TYPE_NORMAL)        push($0)            leave_scope()    next}/^#[ \t]*else/ {    push($0)    next}/^#[ \t]*elif/ {    push($0)    next}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -