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

📄 ascase.c

📁 acpi tools for linux include acpiexec and acpixtract
💻 C
📖 第 1 页 / 共 2 页
字号:
                    SubBuffer++;                }                continue;            }        }// OBSOLETE CODE, all quoted strings now completely ignored.#if 0        /* Ignore format specification fields */        if (SubBuffer[0] == '%')        {            SubBuffer++;            while ((isalnum (*SubBuffer)) || (*SubBuffer == '.'))            {                SubBuffer++;            }            continue;        }#endif        /* Ignore standard escape sequences (\n, \r, etc.)  Not Hex or Octal escapes */        if (SubBuffer[0] == '\\')        {            SubBuffer += 2;            continue;        }        /*         * Ignore identifiers that already contain embedded underscores         * These are typically C macros or defines (all upper case)         * Note: there are some cases where identifiers have underscores         * AcpiGbl_* for example. HasLowerCase flag handles these.         */        if ((*SubBuffer == '_') && (!HasLowerCase) && (TokenStart))        {            /* Check the rest of the identifier for any lower case letters */            SubString = SubBuffer;            while ((isalnum (*SubString)) || (*SubString == '_'))            {                if (islower (*SubString))                {                    HasLowerCase = TRUE;                }                SubString++;            }            /* If no lower case letters, we can safely ignore the entire token */            if (!HasLowerCase)            {                SubBuffer = SubString;                continue;            }        }        /* A capital letter may indicate the start of a token; save it */        if (isupper (SubBuffer[0]))        {            TokenStart = SubBuffer;        }        /*         * Convert each pair of letters that matches the form:         *         *      <LowerCase><UpperCase>         * to         *      <LowerCase><Underscore><LowerCase>         */        else if ((islower (SubBuffer[0]) || isdigit (SubBuffer[0])) &&                 (isupper (SubBuffer[1])))        {            if (isdigit (SubBuffer[0]))            {                /* Ignore <UpperCase><Digit><UpperCase> */                /* Ignore <Underscore><Digit><UpperCase> */                if (isupper (*(SubBuffer-1)) ||                    *(SubBuffer-1) == '_')                {                    SubBuffer++;                    continue;                }            }            /*             * Matched the pattern.             * Find the end of this identifier (token)             */            TokenEnd = SubBuffer;            while ((isalnum (*TokenEnd)) || (*TokenEnd == '_'))            {                TokenEnd++;            }            /* Force the UpperCase letter (#2) to lower case */            Gbl_MadeChanges = TRUE;            SubBuffer[1] = (char) tolower (SubBuffer[1]);            SubString = TokenEnd;            Length = 0;            while (*SubString != '\n')            {                /*                 * If we have at least two trailing spaces, we can get rid of                 * one to make up for the newly inserted underscore.  This will                 * help preserve the alignment of the text                 */                if ((SubString[0] == ' ') &&                    (SubString[1] == ' '))                {                    Length = SubString - SubBuffer - 2;                    break;                }                SubString++;            }            if (!Length)            {                Length = strlen (&SubBuffer[1]);            }            memmove (&SubBuffer[2], &SubBuffer[1], Length + 1);            SubBuffer[1] = '_';            SubBuffer +=2;            /* Lower case the leading character of the token */            if (TokenStart)            {                *TokenStart = (char) tolower (*TokenStart);                TokenStart = NULL;            }        }        SubBuffer++;    }}/****************************************************************************** * * FUNCTION:    AsLowerCaseIdentifiers * * DESCRIPTION: Converts mixed case identifiers to lower case.  Leaves comments, *              quoted strings, and all-upper-case macros alone. * ******************************************************************************/voidAsLowerCaseIdentifiers (    char                    *Buffer){    char                    *SubBuffer = Buffer;    while (*SubBuffer)    {        /*         * Check for translation escape string -- means to ignore         * blocks of code while replacing         */        if ((SubBuffer[0] == '/') &&            (SubBuffer[1] == '*') &&            (SubBuffer[2] == '!'))        {            SubBuffer = strstr (SubBuffer, "!*/");            if (!SubBuffer)            {                return;            }        }        /* Ignore comments */        if ((SubBuffer[0] == '/') &&            (SubBuffer[1] == '*'))        {            SubBuffer = strstr (SubBuffer, "*/");            if (!SubBuffer)            {                return;            }            SubBuffer += 2;        }        /* Ignore quoted strings */        if ((SubBuffer[0] == '\"') && (SubBuffer[1] != '\''))        {            SubBuffer++;            /* Find the closing quote */            while (SubBuffer[0])            {                /* Ignore escaped quote characters */                if (SubBuffer[0] == '\\')                {                    SubBuffer++;                }                else if (SubBuffer[0] == '\"')                {                    SubBuffer++;                    break;                }                SubBuffer++;            }        }        if (!SubBuffer[0])        {            return;        }        /*         * Only lower case if we have an upper followed by a lower         * This leaves the all-uppercase things (macros, etc.) intact         */        if ((isupper (SubBuffer[0])) &&            (islower (SubBuffer[1])))        {            Gbl_MadeChanges = TRUE;            *SubBuffer = (char) tolower (*SubBuffer);        }        SubBuffer++;    }}/****************************************************************************** * * FUNCTION:    AsUppercaseTokens * * DESCRIPTION: Force to uppercase all tokens that begin with the prefix string. *              used to convert mixed-case macros and constants to uppercase. * ******************************************************************************/voidAsUppercaseTokens (    char                    *Buffer,    char                    *PrefixString){    char                    *SubBuffer;    char                    *TokenEnd;    char                    *SubString;    int                     i;    UINT32                  Length;    SubBuffer = Buffer;    while (SubBuffer)    {        SubBuffer = strstr (SubBuffer, PrefixString);        if (SubBuffer)        {            TokenEnd = SubBuffer;            while ((isalnum (*TokenEnd)) || (*TokenEnd == '_'))            {                TokenEnd++;            }            for (i = 0; i < (TokenEnd - SubBuffer); i++)            {                if ((islower (SubBuffer[i])) &&                    (isupper (SubBuffer[i+1])))                {                    SubString = TokenEnd;                    Length = 0;                    while (*SubString != '\n')                    {                        if ((SubString[0] == ' ') &&                            (SubString[1] == ' '))                        {                            Length = SubString - &SubBuffer[i] - 2;                            break;                        }                        SubString++;                    }                    if (!Length)                    {                        Length = strlen (&SubBuffer[i+1]);                    }                    memmove (&SubBuffer[i+2], &SubBuffer[i+1], (Length+1));                    SubBuffer[i+1] = '_';                    i +=2;                    TokenEnd++;                }            }            for (i = 0; i < (TokenEnd - SubBuffer); i++)            {                SubBuffer[i] = (char) toupper (SubBuffer[i]);            }            SubBuffer = TokenEnd;        }    }}

⌨️ 快捷键说明

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