OLD | NEW |
1 /* | 1 /* |
2 * File helper functions. | 2 * File helper functions. |
3 * | 3 * |
4 * Copyright (C) 2001-2007 Peter Johnson | 4 * Copyright (C) 2001-2007 Peter Johnson |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
11 * 2. Redistributions in binary form must reproduce the above copyright | 11 * 2. Redistributions in binary form must reproduce the above copyright |
12 * notice, this list of conditions and the following disclaimer in the | 12 * notice, this list of conditions and the following disclaimer in the |
13 * documentation and/or other materials provided with the distribution. | 13 * documentation and/or other materials provided with the distribution. |
14 * | 14 * |
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS'' | 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS'' |
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE | 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE |
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | 24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
25 * POSSIBILITY OF SUCH DAMAGE. | 25 * POSSIBILITY OF SUCH DAMAGE. |
26 */ | 26 */ |
27 #include <util.h> | 27 #include <util.h> |
28 /*@unused@*/ RCSID("$Id: file.c 2287 2010-02-13 08:42:27Z peter $"); | |
29 | 28 |
30 /* Need either unistd.h or direct.h (on Windows) to prototype getcwd() */ | 29 /* Need either unistd.h or direct.h to prototype getcwd() and mkdir() */ |
31 #if defined(HAVE_UNISTD_H) | 30 #ifdef HAVE_UNISTD_H |
32 #include <unistd.h> | 31 #include <unistd.h> |
33 #elif defined(HAVE_DIRECT_H) | 32 #endif |
| 33 |
| 34 #ifdef HAVE_DIRECT_H |
34 #include <direct.h> | 35 #include <direct.h> |
35 #endif | 36 #endif |
36 | 37 |
37 #ifdef _WIN32 | 38 #ifdef _WIN32 |
38 #include <io.h> | 39 #include <io.h> |
39 #endif | 40 #endif |
40 | 41 |
41 #ifdef HAVE_SYS_STAT_H | 42 #ifdef HAVE_SYS_STAT_H |
42 #include <sys/stat.h> | 43 #include <sys/stat.h> |
43 #endif | 44 #endif |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 } | 237 } |
237 | 238 |
238 char * | 239 char * |
239 yasm__getcwd(void) | 240 yasm__getcwd(void) |
240 { | 241 { |
241 char *buf; | 242 char *buf; |
242 size_t size; | 243 size_t size; |
243 | 244 |
244 size = 1024; | 245 size = 1024; |
245 buf = yasm_xmalloc(size); | 246 buf = yasm_xmalloc(size); |
| 247 |
| 248 if (getenv("YASM_TEST_SUITE")) { |
| 249 strcpy(buf, "./"); |
| 250 return buf; |
| 251 } |
| 252 |
246 while (getcwd(buf, size-1) == NULL) { | 253 while (getcwd(buf, size-1) == NULL) { |
247 if (errno != ERANGE) { | 254 if (errno != ERANGE) { |
248 yasm__fatal(N_("could not determine current working directory")); | 255 yasm__fatal(N_("could not determine current working directory")); |
249 yasm_xfree(buf); | 256 yasm_xfree(buf); |
250 return NULL; | 257 return NULL; |
251 } | 258 } |
252 size *= 2; | 259 size *= 2; |
253 buf = yasm_xrealloc(buf, size); | 260 buf = yasm_xrealloc(buf, size); |
254 } | 261 } |
255 | 262 |
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 if (fputc((int)((val >> 24) & 0xFF), f) == EOF) | 663 if (fputc((int)((val >> 24) & 0xFF), f) == EOF) |
657 return 0; | 664 return 0; |
658 if (fputc((int)((val >> 16) & 0xFF), f) == EOF) | 665 if (fputc((int)((val >> 16) & 0xFF), f) == EOF) |
659 return 0; | 666 return 0; |
660 if (fputc((int)((val >> 8) & 0xFF), f) == EOF) | 667 if (fputc((int)((val >> 8) & 0xFF), f) == EOF) |
661 return 0; | 668 return 0; |
662 if (fputc((int)(val & 0xFF), f) == EOF) | 669 if (fputc((int)(val & 0xFF), f) == EOF) |
663 return 0; | 670 return 0; |
664 return 1; | 671 return 1; |
665 } | 672 } |
OLD | NEW |