VirtualBox

Ignore:
Timestamp:
Jul 1, 2014 6:14:02 PM (10 years ago)
Author:
vboxsync
Message:

Merged in iprt++ dev branch.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/VBox

  • trunk/src/VBox/Runtime/common/string/uniread.cpp

    r48935 r51770  
    3535#include <string.h>
    3636#include <stdlib.h>
     37#ifdef _MSC_VER
     38# include <direct.h>
     39#else
     40# include <unistd.h>
     41#endif
    3742
    3843
     
    4045*   Global Variables                                                           *
    4146*******************************************************************************/
    42 /** When set, no output is produced.  Very useful when debugging ths code. */
    43 static bool g_fQuiet = false;
    4447/** The file we're currently parsing. */
    4548static const char *g_pszCurFile;
    4649/** The current line number. */
    4750static unsigned g_iLine;
     51/** The current output file. */
     52static FILE *g_pCurOutFile;
    4853
    4954
     
    884889    //if (pInfo->???)
    885890    //    AppendFlag(pszFlags, "RTUNI_BSPACE");
     891#if 0
    886892    if (pInfo->fInvNFD_QC != 0 || pInfo->fInvNFC_QC != 0)
    887893    {
     
    894900    else if (pInfo->paDecompositionMapping && !*pInfo->pszDecompositionType)
    895901        fprintf(stderr, "uniread: U+%05X is not QC_NFX but has canonical mappings.\n", pInfo->CodePoint);
     902#endif
    896903
    897904    if (!*pszFlags)
     
    906913
    907914/**
     915 * Closes the primary output stream.
     916 */
     917static int Stream1Close(void)
     918{
     919    if (g_pCurOutFile && g_pCurOutFile != stdout && g_pCurOutFile != stderr)
     920    {
     921        if (fclose(g_pCurOutFile) != 0)
     922        {
     923            fprintf(stderr, "Error closing output file.\n");
     924            return -1;
     925        }
     926    }
     927    g_pCurOutFile = NULL;
     928    return 0;
     929}
     930
     931
     932/**
     933 * Initializes the 1st stream to output to a given file.
     934 */
     935static int Stream1Init(const char *pszName)
     936{
     937    int rc = Stream1Close();
     938    if (!rc)
     939    {
     940        g_pCurOutFile = fopen(pszName, "w");
     941        if (!g_pCurOutFile)
     942        {
     943            fprintf(stderr, "Error opening output file '%s'.\n", pszName);
     944            rc = -1;
     945        }
     946    }
     947    return rc;
     948}
     949
     950
     951/**
    908952 * printf wrapper for the primary output stream.
    909953 *
     
    917961    va_list va;
    918962    va_start(va, pszFormat);
    919     if (!g_fQuiet)
    920         cch = vfprintf(stdout, pszFormat, va);
    921     else
    922         cch = (int)strlen(pszFormat);
     963    cch = vfprintf(g_pCurOutFile, pszFormat, va);
    923964    va_end(va);
    924965    return cch;
     
    9741015 * Print the unidata.cpp file header and include list.
    9751016 */
    976 int PrintHeader(const char *argv0)
    977 {
    978     Stream1Printf("/** @file\n"
    979                   " *\n"
     1017int PrintHeader(const char *argv0, const char *pszBaseDir)
     1018{
     1019    char szBuf[1024];
     1020    if (!pszBaseDir)
     1021    {
     1022        memset(szBuf, 0, sizeof(szBuf));
     1023#ifdef _MSC_VER
     1024        _getcwd(szBuf, sizeof(szBuf));
     1025#else
     1026        getcwd(szBuf, sizeof(szBuf));
     1027#endif
     1028        pszBaseDir = szBuf;
     1029    }
     1030
     1031    Stream1Printf("/* $" "Id" "$ */\n"
     1032                  "/** @file\n"
    9801033                  " * IPRT - Unicode Tables.\n"
    9811034                  " *\n"
    982                   " * Automatically Generated by %s (" __DATE__ " " __TIME__ ")\n"
     1035                  " * Automatically Generated from %s\n"
     1036                  " * by %s (" __DATE__ " " __TIME__ ")\n"
    9831037                  " */\n"
    9841038                  "\n"
    9851039                  "/*\n"
    986                   " * Copyright (C) 2006-2010 Oracle Corporation\n"
     1040                  " * Copyright (C) 2006-2014 Oracle Corporation\n"
    9871041                  " *\n"
    9881042                  " * This file is part of VirtualBox Open Source Edition (OSE), as\n"
     
    10061060                  "#include <iprt/uni.h>\n"
    10071061                  "\n",
    1008                   argv0);
     1062                  pszBaseDir, argv0);
    10091063    return 0;
    10101064}
     
    10201074     */
    10211075    Stream2Init();
    1022     Stream2Printf("const RTUNIFLAGSRANGE g_aRTUniFlagsRanges[] =\n"
     1076    Stream2Printf("RT_DECL_DATA_CONST(const RTUNIFLAGSRANGE) g_aRTUniFlagsRanges[] =\n"
    10231077                  "{\n");
    10241078    RTUNICP i = 0;
     
    10471101            if (iStart < 0)
    10481102            {
    1049                 Stream1Printf("static const uint8_t g_afRTUniFlags0x%06x[] = \n"
     1103                Stream1Printf("static const uint8_t g_afRTUniFlags0x%06x[] =\n"
    10501104                              "{\n", i);
    10511105                iStart = i;
     
    10691123{
    10701124    Stream2Init();
    1071     Stream2Printf("const RTUNICASERANGE g_aRTUniUpperRanges[] =\n"
     1125    Stream2Printf("RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniUpperRanges[] =\n"
    10721126                  "{\n");
    10731127    RTUNICP i = 0;
     
    10951149            if (iStart < 0)
    10961150            {
    1097                 Stream1Printf("static const RTUNICP g_afRTUniUpper0x%06x[] = \n"
     1151                Stream1Printf("static const RTUNICP g_afRTUniUpper0x%06x[] =\n"
    10981152                              "{\n", i);
    10991153                iStart = i;
     
    11161170{
    11171171    Stream2Init();
    1118     Stream2Printf("const RTUNICASERANGE g_aRTUniLowerRanges[] =\n"
     1172    Stream2Printf("RT_DECL_DATA_CONST(const RTUNICASERANGE) g_aRTUniLowerRanges[] =\n"
    11191173                  "{\n");
    11201174    RTUNICP i = 0;
     
    11421196            if (iStart < 0)
    11431197            {
    1144                 Stream1Printf("static const RTUNICP g_afRTUniLower0x%06x[] = \n"
     1198                Stream1Printf("static const RTUNICP g_afRTUniLower0x%06x[] =\n"
    11451199                              "{\n", i);
    11461200                iStart = i;
     
    12021256            pszBaseDir = argv[argi];
    12031257        }
    1204         else if (   !strcmp(argv[argi], "-q")
    1205                  || !strcmp(argv[argi], "--quiet"))
    1206             g_fQuiet = true;
    12071258        else
    12081259        {
     
    12321283
    12331284    /*
    1234      * Print stuff.
     1285     * Produce output files.
    12351286     */
    1236     rc = PrintHeader(argv[0]);
    1237     if (rc)
    1238         return rc;
    1239     rc = PrintFlags();
    1240     if (rc)
    1241         return rc;
    1242     rc = PrintUpper();
    1243     if (rc)
    1244         return rc;
    1245     rc = PrintLower();
    1246     if (rc)
    1247         return rc;
     1287    rc = Stream1Init("unidata-flags.cpp");
     1288    if (!rc)
     1289        rc = PrintHeader(argv[0], pszBaseDir);
     1290    if (!rc)
     1291        rc = PrintFlags();
     1292
     1293    rc = Stream1Init("unidata-upper.cpp");
     1294    if (!rc)
     1295        rc = PrintHeader(argv[0], pszBaseDir);
     1296    if (!rc)
     1297        rc = PrintUpper();
     1298
     1299    rc = Stream1Init("unidata-lower.cpp");
     1300    if (!rc)
     1301        rc = PrintHeader(argv[0], pszBaseDir);
     1302    if (!rc)
     1303        rc = PrintLower();
     1304    if (!rc)
     1305        rc = Stream1Close();
    12481306
    12491307    /* done */
    1250     fflush(stdout);
    1251 
    12521308    return rc;
    12531309}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette