Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Johnny Cai
wine
Commits
9d8b1497
Commit
9d8b1497
authored
22 years ago
by
Dimitrie O. Paun
Committed by
Alexandre Julliard
22 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Make wrc command line compatible with windres.
parent
6f0e60dd
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tools/wrc/wrc.c
+78
-10
78 additions, 10 deletions
tools/wrc/wrc.c
with
78 additions
and
10 deletions
tools/wrc/wrc.c
+
78
−
10
View file @
9d8b1497
...
...
@@ -59,6 +59,7 @@
#include
<assert.h>
#include
<ctype.h>
#include
<signal.h>
#include
<getopt.h>
#include
"wrc.h"
#include
"utils.h"
...
...
@@ -71,7 +72,7 @@
#include
"../wpp/wpp.h"
static
char
usage
[]
=
"Usage: wrc [options...] [infile[.rc|.res]]
\n
"
"Usage: wrc [options...] [infile[.rc|.res]]
[outfile]
\n
"
" -a n Alignment of resource (win16 only, default is 4)
\n
"
" -A Auto register resources (only with gcc 2.7 and better)
\n
"
" -b Create an assembly array from a binary .res file
\n
"
...
...
@@ -89,9 +90,11 @@ static char usage[] =
" -D id[=val] Define preprocessor identifier id=val
\n
"
" -e Disable recognition of win32 keywords in 16bit compile
\n
"
" -E Preprocess only
\n
"
" -F target Ignored for compatibility with windres
\n
"
" -g Add symbols to the global c namespace
\n
"
" -h Also generate a .h file
\n
"
" -H file Same as -h but written to file
\n
"
" -i file The name of the input file.
\n
"
" -I path Set include search dir to path (multiple -I allowed)
\n
"
" -l lan Set default language to lan (default is neutral {0, 0})
\n
"
" -L Leave case of embedded filenames as is
\n
"
...
...
@@ -99,6 +102,7 @@ static char usage[] =
" -n Do not generate .s file
\n
"
" -N Do not preprocess input
\n
"
" -o file Output to file (default is infile.[res|s|h]
\n
"
" -O format The output format to generate. format may be `res' only.
\n
"
" -p prefix Give a prefix for the generated names
\n
"
" -r Create binary .res file (compile only)
\n
"
" -s Add structure with win32/16 (PE/NE) resource directory
\n
"
...
...
@@ -107,6 +111,17 @@ static char usage[] =
" -V Print version end exit
\n
"
" -w 16|32 Select win16 or win32 output (default is win32)
\n
"
" -W Enable pedantic warnings
\n
"
"The following long options are supported:
\n
"
" --input Synonym for -i.
\n
"
" --output Synonym for -o.
\n
"
" --target Synonym for -F.
\n
"
" --format Synonym for -O.
\n
"
" --include-dir Synonym for -I.
\n
"
" --define Synonym for -D.
\n
"
" --language Synonym for -l.
\n
"
" --preprocessor Specify the preprocessor to use, including arguments.
\n
"
" --help Prints a usage summary.
\n
"
" --version Prints the version number for wrc.
\n
"
"Input is taken from stdin if no sourcefile specified.
\n
"
"Debug level 'n' is a bitmask with following meaning:
\n
"
" * 0x01 Tell which resource is parsed (verbose mode)
\n
"
...
...
@@ -269,11 +284,25 @@ int getopt (int argc, char *const *argv, const char *optstring);
static
void
rm_tempfile
(
void
);
static
void
segvhandler
(
int
sig
);
static
struct
option
long_options
[]
=
{
{
"input"
,
1
,
0
,
'i'
},
{
"output"
,
1
,
0
,
'o'
},
{
"target"
,
1
,
0
,
'F'
},
{
"format"
,
1
,
0
,
'O'
},
{
"include-dir"
,
1
,
0
,
'I'
},
{
"define"
,
1
,
0
,
'D'
},
{
"language"
,
1
,
0
,
'l'
},
{
"preprocessor"
,
1
,
0
,
1
},
{
"help"
,
0
,
0
,
2
},
{
"version"
,
0
,
0
,
3
},
{
0
,
0
,
0
,
0
}
};
int
main
(
int
argc
,
char
*
argv
[])
{
extern
char
*
optarg
;
extern
int
optind
;
int
optc
;
int
optc
,
opti
=
0
;
int
lose
=
0
;
int
ret
;
int
a
;
...
...
@@ -298,10 +327,19 @@ int main(int argc,char *argv[])
strcat
(
cmdline
,
" "
);
}
while
((
optc
=
getopt
(
argc
,
argv
,
"a:AbB:cC:d:D:eEghH:I:l:LmnNo:p:rstTVw:W"
))
!=
EOF
)
while
((
optc
=
getopt
_long
(
argc
,
argv
,
"a:AbB:cC:d:D:eE
F:
ghH:
i:
I:l:LmnNo:
O:
p:rstTVw:W"
,
long_options
,
&
opti
))
!=
EOF
)
{
switch
(
optc
)
{
case
1
:
fprintf
(
stderr
,
"--preprocessor option not yet supported, ignored.
\n
"
);
break
;
case
2
:
fprintf
(
stderr
,
usage
);
return
0
;
case
3
:
fprintf
(
stderr
,
version_string
);
return
0
;
case
'a'
:
alignment
=
atoi
(
optarg
);
break
;
...
...
@@ -349,6 +387,9 @@ int main(int argc,char *argv[])
case
'E'
:
preprocess_only
=
1
;
break
;
case
'F'
:
/* ignored for compatibility with windres */
break
;
case
'g'
:
global
=
1
;
break
;
...
...
@@ -358,6 +399,10 @@ int main(int argc,char *argv[])
case
'h'
:
create_header
=
1
;
break
;
case
'i'
:
if
(
!
input_name
)
input_name
=
strdup
(
optarg
);
else
error
(
"Too many input files.
\n
"
);
break
;
case
'I'
:
wpp_add_include_path
(
optarg
);
break
;
...
...
@@ -383,7 +428,12 @@ int main(int argc,char *argv[])
no_preprocess
=
1
;
break
;
case
'o'
:
output_name
=
strdup
(
optarg
);
if
(
!
output_name
)
output_name
=
strdup
(
optarg
);
else
error
(
"Too many output files.
\n
"
);
break
;
case
'O'
:
if
(
strcmp
(
optarg
,
"res"
))
error
(
"Output format %s not supported."
,
optarg
);
break
;
case
'p'
:
prefix
=
xstrdup
(
optarg
);
...
...
@@ -428,6 +478,30 @@ int main(int argc,char *argv[])
return
1
;
}
/* Check for input file on command-line */
if
(
optind
<
argc
)
{
if
(
!
input_name
)
input_name
=
argv
[
optind
++
];
else
error
(
"Too many input files.
\n
"
);
}
/* Check for output file on command-line */
if
(
optind
<
argc
)
{
if
(
!
output_name
)
output_name
=
argv
[
optind
++
];
else
error
(
"Too many output files.
\n
"
);
}
/* Try to guess the output format based on output name */
if
(
output_name
)
{
char
*
dotstr
=
strrchr
(
output_name
,
'.'
);
if
(
dotstr
&&
(
strcmp
(
dotstr
+
1
,
"res"
)
==
0
||
strcmp
(
dotstr
+
1
,
"o"
)
==
0
))
create_res
=
1
;
}
/* Check the command line options for invalid combinations */
if
(
win32
)
{
...
...
@@ -590,12 +664,6 @@ int main(int argc,char *argv[])
if
(
!
currentlanguage
)
currentlanguage
=
new_language
(
0
,
0
);
/* Check for input file on command-line */
if
(
optind
<
argc
)
{
input_name
=
argv
[
optind
];
}
if
(
binary
&&
!
input_name
)
{
error
(
"Binary mode requires .res file as input
\n
"
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment