Ignore:
Timestamp:
Mar 14, 2011, 5:35:17 PM (14 years ago)
Author:
dmik
Message:

tools/wrc: Restored generating GAS output by default. MASM output is now generated by specifying the -M option.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/wrc/writeres.c

    r6114 r21589  
    2626#endif
    2727
    28 #ifdef MASM
    29     #define DIRECTIVE_BYTE  "db"
    30     #define DIRECTIVE_SHORT "dw"
    31     #define DIRECTIVE_LONG  "dd"
    32     #define DIRECTIVE_ALIGN "align"
    33     #define DIRECTIVE_GLOBAL "public"
    34     #define LOCAL_PREFIX ""
    35     #define LONGFRMT        "0%08lxh"
    36     #define SHORTFRMT       "0%04xh"
    37     #define BYTEFRMT        "0%02xh"
    38     #define HEXBIT31        "80000000h"
    39     #define COMMENT_LINE    ";"
    40     #define OR              "or"
    41 
    42 static char s_file_head_str[] =
    43         "; This file is generated with wrc version " WRC_FULLVERSION ". Do not edit! */\n"
    44         "; Source : %s */\n"
    45         "; Cmdline: %s */\n"
    46         "; Date   : %s */\n"
    47         "\n"
     28                                           // GAS      // MASM
     29static const char *DIRECTIVE_BYTE[]         = { ".byte"                 , "db"              };
     30static const char *BYTEFRMT[]               = { "0x%02x"                , "0%02xh"          };
     31static const char *DIRECTIVE_SHORT[]        = { ".short"                , "dw"              };
     32static const char *DIRECTIVE_SHORT_FULL[]   = { "\t.short\t0x%04x\n"    , "\tdw\t0%04xh\n"  };
     33static const char *DIRECTIVE_LONG[]         = { ".long"                 , "dd"              };
     34static const char *DIRECTIVE_LONG_FULL[]    = { "\t.long\t0x%08lx\n"    , "\tdd\t0%08lxh\n" };
     35static const char *DIRECTIVE_ALIGN[]        = { ".align"                , "align"           };
     36static const char *DIRECTIVE_GLOBAL[]       = { ".globl"                , "public"          };
     37static const char *LOCAL_PREFIX[]           = { "."                     , ""                };
     38static const char *HEXBIT31[]               = { "0x80000000"            , "80000000h"       };
     39static const char *OR[]                     = { "|"                     , "or"              };
     40
     41static const char *s_file_head_str[] =
     42{
     43    // GAS
     44    "/* This file is generated with wrc version " WRC_FULLVERSION ". Do not edit! */\n"
     45    "/* Source : %s */\n"
     46    "/* Cmdline: %s */\n"
     47    "/* Date   : %s */\n"
     48    "\n"
     49    "\t.data\n"
     50    "\n"
     51,
     52    // MASM
     53    "; This file is generated with wrc version " WRC_FULLVERSION ". Do not edit! */\n"
     54    "; Source : %s */\n"
     55    "; Cmdline: %s */\n"
     56    "; Date   : %s */\n"
     57    "\n"
    4858    "\t.386p\n"
    4959    "\t.model flat\n"
    5060    "\t.data\n"
    51         "\n"
    52     ;
    53 
    54 static char s_file_tail_str[] =
     61    "\n"
     62};
     63
     64static const char *s_file_tail_str[] =
     65{
     66    // GAS
     67    "/* <eof> */\n"
     68    "\n"
     69,
     70    // MASM
    5571    "\tend\n"
    56         "; <eof> */\n"
    57         "\n"
    58     ;
    59 
    60 #else
    61     #define DIRECTIVE_BYTE  ".byte"
    62     #define DIRECTIVE_SHORT ".short"
    63     #define DIRECTIVE_LONG  ".long"
    64     #define DIRECTIVE_ALIGN ".align"
    65     #define DIRECTIVE_GLOBAL ".globl"
    66     #define LOCAL_PREFIX     "."
    67     #define LONGFRMT        "0x%08lx"
    68     #define SHORTFRMT       "0x%04x"
    69     #define BYTEFRMT        "0x%02x"
    70     #define HEXBIT31        "0x80000000"
    71     #define COMMENT_LINE
    72     #define OR              "|"
    73 
    74 static char s_file_head_str[] =
    75         "/* This file is generated with wrc version " WRC_FULLVERSION ". Do not edit! */\n"
    76         "/* Source : %s */\n"
    77         "/* Cmdline: %s */\n"
    78         "/* Date   : %s */\n"
    79         "\n"
    80     "\t.data\n"
    81         "\n"
    82     ;
    83 
    84 static char s_file_tail_str[] =
    85         "/* <eof> */\n"
    86         "\n"
    87     ;
    88 
    89 #endif
    90 
     72    "; <eof> */\n"
     73    "\n"
     74};
     75
     76#define TXT(v) (v[masm_mode ? 1 : 0])
    9177
    9278static char s_file_autoreg_str[] =
     
    10591#else
    10692    "\t.section .ctors,\"aw\"\n"
    107     "\t"DIRECTIVE_LONG"\t.LAuto_Register\n\n"
     93    "\t.long\t.LAuto_Register\n\n"
    10894#endif
    10995    ;
     
    235221    for(i = 0 ; i < lines; i++)
    236222    {
    237         fprintf(fp, "\t"DIRECTIVE_BYTE"\t");
     223        fprintf(fp, "\t%s\t", TXT(DIRECTIVE_BYTE));
    238224        for(j = 0; j < BYTESPERLINE; j++, idx++)
    239225        {
    240             fprintf(fp, ""BYTEFRMT"%s", res->data[idx] & 0xff,
    241                     j == BYTESPERLINE-1 ? "" : ", ");
     226            fprintf(fp, TXT(BYTEFRMT), res->data[idx] & 0xff);
     227            if (j != BYTESPERLINE-1)
     228                fprintf(fp, ", ");
    242229        }
    243230        fprintf(fp, "\n");
     
    245232    if(rest)
    246233    {
    247         fprintf(fp, "\t"DIRECTIVE_BYTE"\t");
     234        fprintf(fp, "\t%s\t", TXT(DIRECTIVE_BYTE));
    248235        for(j = 0; j < rest; j++, idx++)
    249236        {
    250             fprintf(fp, ""BYTEFRMT"%s", res->data[idx] & 0xff,
    251                     j == rest-1 ? "" : ", ");
     237            fprintf(fp, TXT(BYTEFRMT), res->data[idx] & 0xff);
     238            if (j != rest-1)
     239                fprintf(fp, ", ");
    252240        }
    253241        fprintf(fp, "\n");
     
    572560    int i;
    573561
    574     fprintf(fp, "\t"DIRECTIVE_ALIGN"\t4\n");
     562    fprintf(fp, "\t%s\t4\n", TXT(DIRECTIVE_ALIGN));
    575563    fprintf(fp, "%s%s:\n", prefix, _PEResTab);
    576     fprintf(fp, "\t"DIRECTIVE_GLOBAL"\t%s%s\n", prefix, _PEResTab);
     564    fprintf(fp, "\t%s\t%s%s\n", TXT(DIRECTIVE_GLOBAL), prefix, _PEResTab);
    577565    /* Flags */
    578     fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n");
     566    fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_LONG));
    579567    /* Time/Date stamp */
    580     fprintf(fp, "\t"DIRECTIVE_LONG"\t"LONGFRMT"\n", (long)now);
     568    fprintf(fp, TXT(DIRECTIVE_LONG_FULL), (long)now);
    581569    /* Version */
    582     fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n"); /* FIXME: must version be filled out? */
     570    fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_LONG)); /* FIXME: must version be filled out? */
    583571    /* # of id entries, # of name entries */
    584     fprintf(fp, "\t"DIRECTIVE_SHORT"\t%d, %d\n", n_name_entries, n_id_entries);
     572    fprintf(fp, "\t%s\t%d, %d\n", TXT(DIRECTIVE_SHORT), n_name_entries, n_id_entries);
    585573
    586574    /* Write the type level of the tree */
     
    594582        /* TypeId */
    595583        if(rcp->type.type == name_ord)
    596             fprintf(fp, "\t"DIRECTIVE_LONG"\t%d\n", rcp->type.name.i_name);
     584            fprintf(fp, "\t%s\t%d\n", TXT(DIRECTIVE_LONG), rcp->type.name.i_name);
    597585        else
    598586        {
    599587            char *name = prep_nid_for_label(&(rcp->type));
    600             fprintf(fp, "\t"DIRECTIVE_LONG"\t(%s_%s_typename - %s%s) "OR" "HEXBIT31"\n",
     588            fprintf(fp, "\t%s\t(%s_%s_typename - %s%s) %s %s\n",
     589                TXT(DIRECTIVE_LONG),
    601590                prefix,
    602591                name,
    603592                prefix,
    604                 _PEResTab);
     593                _PEResTab,
     594                TXT(OR),
     595                TXT(HEXBIT31));
    605596        }
    606597        /* Offset */
    607598        label = prep_nid_for_label(&(rcp->type));
    608         fprintf(fp, "\t"DIRECTIVE_LONG"\t("LOCAL_PREFIX"L%s - %s%s) "OR" "HEXBIT31"\n",
     599        fprintf(fp, "\t%s\t(%sL%s - %s%s) %s %s\n",
     600            TXT(DIRECTIVE_LONG),
     601            TXT(LOCAL_PREFIX),
    609602            label,
    610603            prefix,
    611             _PEResTab);
     604            _PEResTab,
     605            TXT(OR),
     606            TXT(HEXBIT31));
    612607    }
    613608
     
    624619
    625620        typelabel = xstrdup(prep_nid_for_label(&(rcp->type)));
    626         fprintf(fp, ""LOCAL_PREFIX"L%s:\n", typelabel);
    627 
    628         fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n");     /* Flags */
    629         fprintf(fp, "\t"DIRECTIVE_LONG"\t"LONGFRMT"\n", (long)now); /* TimeDate */
    630         fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n"); /* FIXME: must version be filled out? */
    631         fprintf(fp, "\t"DIRECTIVE_SHORT"\t%d, %d\n", rcp->n_name_entries, rcp->n_id_entries);
     621        fprintf(fp, "%sL%s:\n", TXT(LOCAL_PREFIX), typelabel);
     622
     623        fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_LONG));     /* Flags */
     624        fprintf(fp, TXT(DIRECTIVE_LONG_FULL), (long)now); /* TimeDate */
     625        fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_LONG)); /* FIXME: must version be filled out? */
     626        fprintf(fp, "\t%s\t%d, %d\n", TXT(DIRECTIVE_SHORT), rcp->n_name_entries, rcp->n_id_entries);
    632627        for(j = 0; j < rcp->count32; j++)
    633628        {
     
    635630            /* NameId */
    636631            if(rsc->name->type == name_ord)
    637                 fprintf(fp, "\t"DIRECTIVE_LONG"\t%d\n", rsc->name->name.i_name);
     632                fprintf(fp, "\t%s\t%d\n", TXT(DIRECTIVE_LONG), rsc->name->name.i_name);
    638633            else
    639634            {
    640                 fprintf(fp, "\t"DIRECTIVE_LONG"\t(%s%s_name - %s%s) "OR" "HEXBIT31"\n",
     635                fprintf(fp, "\t%s\t(%s%s_name - %s%s) %s %s\n",
     636                    TXT(DIRECTIVE_LONG),
    641637                    prefix,
    642638                    rsc->c_name,
    643639                    prefix,
    644                     _PEResTab);
     640                    _PEResTab,
     641                    TXT(OR),
     642                    TXT(HEXBIT31));
    645643            }
    646644            /* Maybe FIXME: Unescape the tree (ommit "HEXBIT31") and
     
    650648            /* Offset */
    651649            namelabel = prep_nid_for_label(rsc->name);
    652             fprintf(fp, "\t"DIRECTIVE_LONG"\t("LOCAL_PREFIX"L%s_%s - %s%s) "OR" "HEXBIT31"\n",
     650            fprintf(fp, "\t%s\t(%sL%s_%s - %s%s) %s %s\n",
     651                TXT(DIRECTIVE_LONG),
     652                TXT(LOCAL_PREFIX),
    653653                typelabel,
    654654                namelabel,
    655655                prefix,
    656                 _PEResTab);
     656                _PEResTab,
     657                TXT(OR),
     658                TXT(HEXBIT31));
    657659        }
    658660        free(typelabel);
     
    677679
    678680            namelabel = xstrdup(prep_nid_for_label(r32cp->rsc[0]->name));
    679             fprintf(fp, ""LOCAL_PREFIX"L%s_%s:\n", typelabel, namelabel);
    680 
    681             fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n");     /* Flags */
    682             fprintf(fp, "\t"DIRECTIVE_LONG"\t"LONGFRMT"\n", (long)now); /* TimeDate */
    683             fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n"); /* FIXME: must version be filled out? */
    684             fprintf(fp, "\t"DIRECTIVE_SHORT"\t0, %d\n", r32cp->count);
     681            fprintf(fp, "%sL%s_%s:\n", TXT(LOCAL_PREFIX), typelabel, namelabel);
     682
     683            fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_LONG));     /* Flags */
     684            fprintf(fp, TXT(DIRECTIVE_LONG_FULL), (long)now); /* TimeDate */
     685            fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_LONG)); /* FIXME: must version be filled out? */
     686            fprintf(fp, "\t%s\t0, %d\n", TXT(DIRECTIVE_SHORT), r32cp->count);
    685687
    686688            for(k = 0; k < r32cp->count; k++)
     
    689691                assert(rsc->lan != NULL);
    690692                /* LanguageId */
    691                 fprintf(fp, "\t"DIRECTIVE_LONG"\t"LONGFRMT"\n", rsc->lan ? MAKELANGID(rsc->lan->id, rsc->lan->sub) : 0);
     693                fprintf(fp, TXT(DIRECTIVE_LONG_FULL), rsc->lan ? MAKELANGID(rsc->lan->id, rsc->lan->sub) : 0);
    692694                /* Offset */
    693                 fprintf(fp, "\t"DIRECTIVE_LONG"\t"LOCAL_PREFIX"L%s_%s_%d - %s%s\n",
     695                fprintf(fp, "\t%s\t%sL%s_%s_%d - %s%s\n",
     696                    TXT(DIRECTIVE_LONG),
     697                    TXT(LOCAL_PREFIX),
    694698                    typelabel,
    695699                    namelabel,
     
    705709    /* Write the resource table itself */
    706710    fprintf(fp, "%s_ResourceDirectory:\n", prefix);
    707     fprintf(fp, "\t"DIRECTIVE_GLOBAL"\t%s_ResourceDirectory\n", prefix);
     711    fprintf(fp, "\t%s\t%s_ResourceDirectory\n", TXT(DIRECTIVE_GLOBAL), prefix);
    708712    direntries = 0;
    709713
     
    731735                assert(rsc->lan != NULL);
    732736
    733                 fprintf(fp, ""LOCAL_PREFIX"L%s_%s_%d:\n",
     737                fprintf(fp, "%sL%s_%s_%d:\n",
     738                    TXT(LOCAL_PREFIX),
    734739                    typelabel,
    735740                    namelabel,
     
    737742
    738743                /* Data RVA */
    739                 fprintf(fp, "\t"DIRECTIVE_LONG"\t%s%s_data - %s%s\n",
     744                fprintf(fp, "\t%s\t%s%s_data - %s%s\n",
     745                    TXT(DIRECTIVE_LONG),
    740746                    prefix,
    741747                    rsc->c_name,
     
    743749                    _PEResTab);
    744750                /* Size */
    745                 fprintf(fp, "\t"DIRECTIVE_LONG"\t%d\n",
     751                fprintf(fp, "\t%s\t%d\n",
     752                    TXT(DIRECTIVE_LONG),
    746753                    rsc->binres->size - rsc->binres->dataidx);
    747754                /* CodePage */
    748                 fprintf(fp, "\t"DIRECTIVE_LONG"\t%ld\n", codepage);
     755                fprintf(fp, "\t%s\t%ld\n", TXT(DIRECTIVE_LONG), codepage);
    749756                /* Reserved */
    750                 fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n");
     757                fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_LONG));
    751758
    752759                direntries++;
     
    772779    int i, j;
    773780
    774     fprintf(fp, "\t"DIRECTIVE_ALIGN"\t4\n");
     781    fprintf(fp, "\t%s\t4\n", TXT(DIRECTIVE_ALIGN));
    775782    fprintf(fp, "%s%s:\n", prefix, _NEResTab);
    776     fprintf(fp, "\t"DIRECTIVE_GLOBAL"\t%s%s\n", prefix, _NEResTab);
     783    fprintf(fp, "\t%s\t%s%s\n", TXT(DIRECTIVE_GLOBAL), prefix, _NEResTab);
    777784
    778785    /* AlignmentShift */
    779     fprintf(fp, "\t"DIRECTIVE_SHORT"\t%d\n", alignment_pwr);
     786    fprintf(fp, "\t%s\t%d\n", TXT(DIRECTIVE_SHORT), alignment_pwr);
    780787
    781788    /* TypeInfo */
     
    786793        /* TypeId */
    787794        if(rcp->type.type == name_ord)
    788             fprintf(fp, "\t"DIRECTIVE_SHORT"\t"SHORTFRMT"\n", rcp->type.name.i_name | 0x8000);
     795            fprintf(fp, TXT(DIRECTIVE_SHORT_FULL), rcp->type.name.i_name | 0x8000);
    789796        else
    790             fprintf(fp, "\t"DIRECTIVE_SHORT"\t%s_%s_typename - %s%s\n",
     797            fprintf(fp, "\t%s\t%s_%s_typename - %s%s\n",
     798                TXT(DIRECTIVE_SHORT),
    791799                prefix,
    792800                rcp->type.name.s_name->str.cstr,
     
    794802                _NEResTab);
    795803        /* ResourceCount */
    796         fprintf(fp, "\t"DIRECTIVE_SHORT"\t%d\n", rcp->count);
     804        fprintf(fp, "\t%s\t%d\n", TXT(DIRECTIVE_SHORT), rcp->count);
    797805        /* Reserved */
    798         fprintf(fp, "\t"DIRECTIVE_LONG"\t0\n");
     806        fprintf(fp, "\t\t0\n", TXT(DIRECTIVE_LONG));
    799807        /* NameInfo */
    800808        for(j = 0; j < rcp->count; j++)
     
    809817 */
    810818            /* Offset */
    811             fprintf(fp, "\t"DIRECTIVE_SHORT"\t(%s%s_data - %s%s) >> %d\n",
     819            fprintf(fp, "\t%s\t(%s%s_data - %s%s) >> %d\n",
     820                TXT(DIRECTIVE_SHORT),
    812821                prefix,
    813822                rcp->rscarray[j]->c_name,
     
    816825                alignment_pwr);
    817826            /* Length */
    818             fprintf(fp, "\t"DIRECTIVE_SHORT"\t%d\n",
     827            fprintf(fp, "\t%s\t%d\n",
     828                TXT(DIRECTIVE_SHORT),
    819829                (rcp->rscarray[j]->binres->size - rcp->rscarray[j]->binres->dataidx + alignment - 1) >> alignment_pwr);
    820830            /* Flags */
    821             fprintf(fp, "\t"DIRECTIVE_SHORT"\t"SHORTFRMT"\n", (WORD)rcp->rscarray[j]->memopt);
     831            fprintf(fp, TXT(DIRECTIVE_SHORT_FULL), (WORD)rcp->rscarray[j]->memopt);
    822832            /* Id */
    823833            if(rcp->rscarray[j]->name->type == name_ord)
    824                 fprintf(fp, "\t"DIRECTIVE_SHORT"\t"SHORTFRMT"\n", rcp->rscarray[j]->name->name.i_name | 0x8000);
     834                fprintf(fp, TXT(DIRECTIVE_SHORT_FULL), rcp->rscarray[j]->name->name.i_name | 0x8000);
    825835            else
    826                 fprintf(fp, "\t"DIRECTIVE_SHORT"\t%s%s_name - %s%s\n",
     836                fprintf(fp, "\t%s\t%s%s_name - %s%s\n",
     837                TXT(DIRECTIVE_SHORT),
    827838                prefix,
    828839                rcp->rscarray[j]->c_name,
     
    830841                _NEResTab);
    831842            /* Handle and Usage */
    832             fprintf(fp, "\t"DIRECTIVE_SHORT"\t0, 0\n");
     843            fprintf(fp, "\t%s\t0, 0\n", TXT(DIRECTIVE_SHORT));
    833844        }
    834845    }
    835846    /* EndTypes */
    836     fprintf(fp, "\t"DIRECTIVE_SHORT"\t0\n");
     847    fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_SHORT));
    837848}
    838849
     
    913924        /* This is to end the NE resource table */
    914925        if(create_dir)
    915             fprintf(fp, "\t"DIRECTIVE_BYTE"\t0\n");
     926            fprintf(fp, "\t%s\t0\n", TXT(DIRECTIVE_BYTE));
    916927    }
    917928
     
    952963        p = strchr(s, '\n');
    953964        if(p) *p = '\0';
    954         fprintf(fo, s_file_head_str, input_name ? input_name : "stdin",
     965        fprintf(fo, TXT(s_file_head_str), input_name ? input_name : "stdin",
    955966            cmdline, s);
    956967    }
     
    972983
    973984    if(create_dir)
    974         fprintf(fo, LOCAL_PREFIX"LResTabEnd:\n");
     985        fprintf(fo, "%sLResTabEnd:\n", TXT(LOCAL_PREFIX));
    975986
    976987    if(!indirect_only)
    977988    {
    978989        /* Write the resource data */
    979 #ifdef MASM
     990        if (masm_mode)
    980991            fprintf(fo, "\n; Resource binary data */\n\n");
    981 #else
     992        else
    982993            fprintf(fo, "\n/* Resource binary data */\n\n");
    983 #endif
    984994        for(rsc = top; rsc; rsc = rsc->next)
    985995        {
     
    987997                continue;
    988998
    989             fprintf(fo, "\t"DIRECTIVE_ALIGN"\t%d\n", win32 ? 4 : alignment);
     999            fprintf(fo, "\t%s\t%d\n", TXT(DIRECTIVE_ALIGN), win32 ? 4 : alignment);
    9901000            fprintf(fo, "%s%s_data:\n", prefix, rsc->c_name);
    9911001            if(global)
    992                 fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s%s_data\n", prefix, rsc->c_name);
     1002                fprintf(fo, "\t%s\t%s%s_data\n", TXT(DIRECTIVE_GLOBAL), prefix, rsc->c_name);
    9931003
    9941004            write_s_res(fo, rsc->binres);
     
    10001010        {
    10011011            /* Add a resource descriptor for built-in and elf-dlls */
    1002             fprintf(fo, "\t"DIRECTIVE_ALIGN"\t4\n");
     1012            fprintf(fo, "\t%s\t4\n", TXT(DIRECTIVE_ALIGN));
    10031013            fprintf(fo, "%s_ResourceDescriptor:\n", prefix);
    1004             fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s_ResourceDescriptor\n", prefix);
     1014            fprintf(fo, "\t%s\t%s_ResourceDescriptor\n", TXT(DIRECTIVE_GLOBAL), prefix);
    10051015            fprintf(fo, "%s_ResourceTable:\n", prefix);
    10061016            if(global)
    1007                 fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s_ResourceTable\n", prefix);
    1008             fprintf(fo, "\t"DIRECTIVE_LONG"\t%s%s\n", prefix, win32 ? _PEResTab : _NEResTab);
     1017                fprintf(fo, "\t%s\t%s_ResourceTable\n", TXT(DIRECTIVE_GLOBAL), prefix);
     1018            fprintf(fo, "\t%s\t%s%s\n", TXT(DIRECTIVE_LONG), prefix, win32 ? _PEResTab : _NEResTab);
    10091019            fprintf(fo, "%s_NumberOfResources:\n", prefix);
    10101020            if(global)
    1011                 fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s_NumberOfResources\n", prefix);
    1012             fprintf(fo, "\t"DIRECTIVE_LONG"\t%d\n", direntries);
     1021                fprintf(fo, "\t%s\t%s_NumberOfResources\n", TXT(DIRECTIVE_GLOBAL), prefix);
     1022            fprintf(fo, "\t%s\t%d\n", TXT(DIRECTIVE_LONG), direntries);
    10131023            fprintf(fo, "%s_ResourceSectionSize:\n", prefix);
    10141024            if(global)
    1015                 fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s_ResourceSectionSize\n", prefix);
    1016             fprintf(fo, "\t"DIRECTIVE_LONG"\t"LOCAL_PREFIX"LResTabEnd - %s%s\n", prefix, win32 ? _PEResTab : _NEResTab);
     1025                fprintf(fo, "\t%s\t%s_ResourceSectionSize\n", TXT(DIRECTIVE_GLOBAL), prefix);
     1026            fprintf(fo, "\t%s\t%sLResTabEnd - %s%s\n",
     1027                TXT(DIRECTIVE_LONG), TXT(LOCAL_PREFIX), prefix, win32 ? _PEResTab : _NEResTab);
    10171028            if(win32)
    10181029            {
    10191030                fprintf(fo, "%s_ResourcesEntries:\n", prefix);
    10201031                if(global)
    1021                     fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s_ResourcesEntries\n", prefix);
    1022                 fprintf(fo, "\t"DIRECTIVE_LONG"\t%s_ResourceDirectory\n", prefix);
     1032                    fprintf(fo, "\t%s\t%s_ResourcesEntries\n", TXT(DIRECTIVE_GLOBAL), prefix);
     1033                fprintf(fo, "\t%s\t%s_ResourceDirectory\n", TXT(DIRECTIVE_LONG), prefix);
    10231034            }
    10241035        }
     
    10291040        /* Write the indirection structures */
    10301041            fprintf(fo, "\n/* Resource indirection structures */\n\n");
    1031         fprintf(fo, "\t"DIRECTIVE_ALIGN"\t4\n");
     1042        fprintf(fo, "\t%s\t4\n", TXT(DIRECTIVE_ALIGN));
    10321043        for(rsc = top; rsc; rsc = rsc->next)
    10331044        {
     
    10711082            fprintf(fo, "%s%s:\n", prefix, rsc->c_name);
    10721083            if(global)
    1073                 fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s%s\n", prefix, rsc->c_name);
    1074             fprintf(fo, "\t"DIRECTIVE_LONG"\t%d, %s%s%s, %d, %s%s%s%s, %s%s_data, %d\n",
     1084                fprintf(fo, "\t%s\t%s%s\n", TXT(DIRECTIVE_GLOBAL), prefix, rsc->c_name);
     1085            fprintf(fo, "\t%s\t%d, %s%s%s, %d, %s%s%s%s, %s%s_data, %d\n",
     1086                TXT(DIRECTIVE_LONG),
    10751087                rsc->name->type == name_ord ? rsc->name->name.i_name : 0,
    10761088                rsc->name->type == name_ord ? "0" : prefix,
     
    10911103        /* Write the indirection table */
    10921104        fprintf(fo, "/* Resource indirection table */\n\n");
    1093         fprintf(fo, "\t"DIRECTIVE_ALIGN"\t4\n");
     1105        fprintf(fo, "\t%s\t4\n", TXT(DIRECTIVE_ALIGN));
    10941106        fprintf(fo, "%s%s:\n", prefix, _ResTable);
    1095         fprintf(fo, "\t"DIRECTIVE_GLOBAL"\t%s%s\n", prefix, _ResTable);
     1107        fprintf(fo, "\t%s\t%s%s\n", TXT(DIRECTIVE_GLOBAL), prefix, _ResTable);
    10961108        for(rsc = top; rsc; rsc = rsc->next)
    10971109        {
    1098             fprintf(fo, "\t"DIRECTIVE_LONG"\t%s%s\n", prefix, rsc->c_name);
    1099         }
    1100         fprintf(fo, "\t"DIRECTIVE_LONG"\t0\n");
     1110            fprintf(fo, "\t%s\t%s%s\n", TXT(DIRECTIVE_LONG), prefix, rsc->c_name);
     1111        }
     1112        fprintf(fo, "\t%s\t0\n", TXT(DIRECTIVE_LONG));
    11011113        fprintf(fo, "\n");
    11021114    }
     
    11051117        fprintf(fo, s_file_autoreg_str, prefix, _ResTable);
    11061118
    1107     fprintf(fo, s_file_tail_str);
     1119    fprintf(fo, TXT(s_file_tail_str));
    11081120    fclose(fo);
    11091121}
Note: See TracChangeset for help on using the changeset viewer.