aboutsummaryrefslogtreecommitdiff
path: root/binutils/resrc.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2007-07-05 09:51:30 +0000
committerNick Clifton <nickc@redhat.com>2007-07-05 09:51:30 +0000
commitc6998d15d5b97393ddd582037f6d6f00e7116237 (patch)
tree50cdc955de0f0ecc0e585b7f966fabeacf8f8f13 /binutils/resrc.c
parent9b201bb5e5daa9b4f783e6ece9cbfbdbf9f1d6f4 (diff)
downloadgdb-c6998d15d5b97393ddd582037f6d6f00e7116237.zip
gdb-c6998d15d5b97393ddd582037f6d6f00e7116237.tar.gz
gdb-c6998d15d5b97393ddd582037f6d6f00e7116237.tar.bz2
* resrc.c: (read_rc_file): Add include path of user passed rc input file.
* windres.c: (windres_add_include_dir): New. (main): Use of windres_add_include_dir. * windres.h: (windres_add_include_dir): Add prototype.
Diffstat (limited to 'binutils/resrc.c')
-rw-r--r--binutils/resrc.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/binutils/resrc.c b/binutils/resrc.c
index ebed255..2b148ef 100644
--- a/binutils/resrc.c
+++ b/binutils/resrc.c
@@ -436,6 +436,35 @@ read_rc_file (const char *filename, const char *preprocessor,
char *cmd;
const char *fnquotes = (filename_need_quotes (filename) ? "\"" : "");
+ /* Setup the default resource import path taken from input file. */
+ if (strchr (filename, '/') != NULL || strchr (filename, '\\') != NULL)
+ {
+ char *e, *c;
+
+ if (filename[0] == '/'
+ || filename[0] == '\\'
+ || filename[1] == ':')
+ e = c = xstrdup (filename);
+ else
+ {
+ e = c = xmalloc (strlen (filename) + 3);
+ sprintf (c, "./%s", filename);
+ }
+ e += strlen (c);
+ while (e > c && (e[-1] != '\\' && e[-1] != '/'))
+ {
+ --e;
+ e[0] = 0;
+ }
+ /* Cut off trailing slash. */
+ --e;
+ e[0] = 0;
+ while ((e = strchr (c, '\\')) != NULL)
+ *e = '/';
+
+ windres_add_include_dir (e);
+ }
+
istream_type = (use_temp_file) ? ISTREAM_FILE : ISTREAM_PIPE;
if (preprocargs == NULL)