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

📄 misc.ch

📁 给程序加密(upx1.25)
💻 CH
字号:
/* ACC -- Automatic Compiler Configuration   Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer   All Rights Reserved.   This software is a copyrighted work licensed under the terms of   the GNU General Public License. Please consult the file "ACC_LICENSE"   for details.   Markus F.X.J. Oberhumer   <markus@oberhumer.com>   http://www.oberhumer.com/ */#define __ACCLIB_MISC_CH_INCLUDED 1#if !defined(ACCLIB_PUBLIC)#  define ACCLIB_PUBLIC(r,f)    r __ACCLIB_FUNCNAME(f)#endif/*************************************************************************// wrap misc**************************************************************************/ACCLIB_PUBLIC(acclib_handle_t, acc_get_osfhandle) (int fd){    if (fd < 0)        return -1;#if (ACC_OS_CYGWIN)    return get_osfhandle(fd);#elif (ACC_OS_EMX && defined(__RSXNT__))    return -1; /* FIXME */#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)    return -1; /* FIXME */#elif (ACC_OS_WIN32 || ACC_OS_WIN64)# if (ACC_CC_PELLESC && (__POCC__ < 280))    return -1; /* FIXME */# elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))    return -1; /* FIXME */# elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))    return _os_handle(fd);# else    return _get_osfhandle(fd);# endif#else    return fd;#endif}ACCLIB_PUBLIC(int, acc_set_binmode) (int fd, int binary){#if (ACC_OS_TOS && defined(__MINT__))    FILE* fp; int old_binary;    if (fd == STDIN_FILENO) fp = stdin;    else if (fd == STDOUT_FILENO) fp = stdout;    else if (fd == STDERR_FILENO) fp = stderr;    else return -1;    old_binary = fp->__mode.__binary;    __set_binmode(fp, binary ? 1 : 0);    return old_binary ? 1 : 0;#elif (ACC_OS_TOS)    ACC_UNUSED(fd); ACC_UNUSED(binary);    return -1; /* FIXME */#elif (ACC_OS_DOS16 && (ACC_CC_AZTECC || ACC_CC_PACIFICC))    ACC_UNUSED(fd); ACC_UNUSED(binary);    return -1; /* FIXME */#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)    int r; unsigned old_flags = __djgpp_hwint_flags;    ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)    ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)    if (fd < 0) return -1;    r = setmode(fd, binary ? O_BINARY : O_TEXT);    if ((old_flags & 1u) != (__djgpp_hwint_flags & 1u))        __djgpp_set_ctrl_c(!(old_flags & 1));    if (r == -1) return -1;    return (r & O_TEXT) ? 0 : 1;#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)    if (fd < 0) return -1;    ACC_UNUSED(binary);    return 1;#elif (ACC_OS_DOS32 && ACC_CC_HIGHC)    FILE* fp; int r;    if (fd == fileno(stdin)) fp = stdin;    else if (fd == fileno(stdout)) fp = stdout;    else if (fd == fileno(stderr)) fp = stderr;    else return -1;    r = _setmode(fp, binary ? _BINARY : _TEXT);    if (r == -1) return -1;    return (r & _BINARY) ? 1 : 0;#elif (ACC_OS_WIN32 && ACC_CC_MWERKS) && defined(__MSL__)    ACC_UNUSED(fd); ACC_UNUSED(binary);    return -1; /* FIXME */#elif (ACC_OS_CYGWIN && (ACC_CC_GNUC < 0x025a00ul))    ACC_UNUSED(fd); ACC_UNUSED(binary);    return -1; /* FIXME */#elif (ACC_OS_CYGWIN || ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)    int r;#if !defined(ACC_CC_ZORTECHC)    ACC_COMPILE_TIME_ASSERT(O_BINARY > 0)#endif    ACC_COMPILE_TIME_ASSERT(O_TEXT > 0)    if (fd < 0) return -1;    r = setmode(fd, binary ? O_BINARY : O_TEXT);    if (r == -1) return -1;    return (r & O_TEXT) ? 0 : 1;#else    if (fd < 0) return -1;    ACC_UNUSED(binary);    return 1;#endif}ACCLIB_PUBLIC(int, acc_isatty) (int fd){    /* work around library implementations that think that     * any character device like `nul' is a tty */    if (fd < 0)        return 0;#if (ACC_OS_DOS16 && !defined(ACC_CC_AZTECC))    {        union REGS ri, ro;        ri.x.ax = 0x4400; ri.x.bx = fd;        int86(0x21, &ri, &ro);        if ((ro.x.cflag & 1) == 0)  /* if carry flag not set */            if ((ro.x.ax & 0x83) != 0x83)                return 0;    }#elif (ACC_OS_DOS32 && ACC_CC_WATCOMC)    {        union REGS ri, ro;        ri.w.ax = 0x4400; ri.w.bx = (unsigned short) fd;        int386(0x21, &ri, &ro);        if ((ro.w.cflag & 1) == 0)  /* if carry flag not set */            if ((ro.w.ax & 0x83) != 0x83)                return 0;    }#elif (ACC_HAVE_WINDOWS_H)    {        acclib_handle_t h = __ACCLIB_FUNCNAME(acc_get_osfhandle)(fd);        if ((HANDLE)h != INVALID_HANDLE_VALUE)        {            DWORD d = 0;            if (GetConsoleMode((HANDLE)h, &d) == 0)                return 0;   /* GetConsoleMode failed -> not a tty */        }    }#endif    return (isatty(fd)) ? 1 : 0;}ACCLIB_PUBLIC(int, acc_mkdir) (const char* name, unsigned mode){#if (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))    ACC_UNUSED(mode);    return Dcreate(name);#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)    return mkdir(name, mode);#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)    return mkdir(name, mode);#elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)    ACC_UNUSED(mode);# if (ACC_CC_HIGHC || ACC_CC_PACIFICC)    return mkdir((char*) name);# else    return mkdir(name);# endif#else    return mkdir(name, mode);#endif}ACCLIB_PUBLIC(acc_int32l_t, acc_muldiv32) (acc_int32l_t a, acc_int32l_t b, acc_int32l_t x){    acc_int32l_t r = 0;    if (x == 0) return x;    /* FIXME */    ACC_UNUSED(a); ACC_UNUSED(b);    return r;}ACCLIB_PUBLIC(acc_uint32l_t, acc_umuldiv32) (acc_uint32l_t a, acc_uint32l_t b, acc_uint32l_t x){    acc_uint32l_t r = 0;    if (x == 0) return x;    /* FIXME */    ACC_UNUSED(a); ACC_UNUSED(b);    return r;}/*vi:ts=4:et*/

⌨️ 快捷键说明

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