summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPeter Johnson <peter@tortall.net>2007-09-08 02:13:25 +0000
committerPeter Johnson <peter@tortall.net>2007-09-08 02:13:25 +0000
commit1387e29705d5ce24584b8846a5c4e197ed55ad5a (patch)
tree5904a9e7038be37beca27d1bec08a8768bf62fb7 /tools
parent1afb23f689413aed8655cbe9d0d11bf90805254b (diff)
downloadyasm-1387e29705d5ce24584b8846a5c4e197ed55ad5a.tar.gz
Windows build fixes:
* modules.vcproj: Add x86cpu.c, x86regtmod.c, and lc3b arch files to fix build. * x85geninsn.c: Clean up a couple of unused variables. * genperf.c: Use sprintf instead of snprintf; convert filename backslashes to slashes. svn path=/trunk/yasm/; revision=1932
Diffstat (limited to 'tools')
-rw-r--r--tools/genperf/genperf.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/tools/genperf/genperf.c b/tools/genperf/genperf.c
index 7a9c766d..1020ee14 100644
--- a/tools/genperf/genperf.c
+++ b/tools/genperf/genperf.c
@@ -259,6 +259,7 @@ main(int argc, char *argv[])
static char language[16] = "";
static char delimiters[16] = ",\r\n";
static char name[128];
+ static char filename[768];
int need_struct = 0;
int have_struct = 0;
int go_keywords = 0;
@@ -281,6 +282,17 @@ main(int argc, char *argv[])
return EXIT_FAILURE;
}
+ ch = argv[1];
+ i = 0;
+ while (*ch && i < 767) {
+ if (*ch == '\\') {
+ filename[i++] = '/';
+ ch++;
+ } else
+ filename[i++] = *ch++;
+ }
+ filename[i] = '\0';
+
STAILQ_INIT(&usercode);
STAILQ_INIT(&usercode2);
STAILQ_INIT(&keywords);
@@ -321,7 +333,7 @@ main(int argc, char *argv[])
struct_name[i] = '\0';
sv = yasm_xmalloc(sizeof(sval));
- snprintf(tmp, 1024, "#line %u \"%s\"\n", cur_line, argv[1]);
+ sprintf(tmp, "#line %u \"%s\"\n", cur_line, filename);
sv->str = yasm__xstrdup(tmp);
STAILQ_INSERT_TAIL(&usercode, sv, link);
@@ -366,7 +378,7 @@ main(int argc, char *argv[])
/* %{ begins a verbatim code section that ends with %} */
if (line[1] == '{') {
sv = yasm_xmalloc(sizeof(sval));
- snprintf(tmp, 1024, "#line %u \"%s\"\n\n", cur_line, argv[1]);
+ sprintf(tmp, "#line %u \"%s\"\n\n", cur_line, filename);
sv->str = yasm__xstrdup(tmp);
STAILQ_INSERT_TAIL(&usercode, sv, link);
@@ -487,7 +499,7 @@ main(int argc, char *argv[])
/* Pull in any end code */
if (!feof(in)) {
sv = yasm_xmalloc(sizeof(sval));
- snprintf(tmp, 1024, "#line %u \"%s\"\n\n", cur_line, argv[1]);
+ sprintf(tmp, "#line %u \"%s\"\n\n", cur_line, filename);
sv->str = yasm__xstrdup(tmp);
STAILQ_INSERT_TAIL(&usercode2, sv, link);
@@ -506,7 +518,7 @@ main(int argc, char *argv[])
printf("%s", sv->str);
/* Get perfect hash */
- perfect_gen(stdout, lookup_function_name, struct_name, &keywords, argv[1]);
+ perfect_gen(stdout, lookup_function_name, struct_name, &keywords, filename);
STAILQ_FOREACH(sv, &usercode2, link)
printf("%s", sv->str);