diff options
-rw-r--r-- | Makefile.in | 4 | ||||
-rw-r--r-- | asm/srcfile.c (renamed from nasmlib/srcfile.c) | 3 | ||||
-rw-r--r-- | asm/srcfile.h | 58 | ||||
-rw-r--r-- | include/nasm.h | 1 | ||||
-rw-r--r-- | include/nasmlib.h | 18 |
5 files changed, 64 insertions, 20 deletions
diff --git a/Makefile.in b/Makefile.in index ba0ae26a..1ed759d4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -100,7 +100,7 @@ LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \ nasmlib/md5c.$(O) nasmlib/string.$(O) nasmlib/nctype.$(O) \ nasmlib/file.$(O) nasmlib/mmap.$(O) nasmlib/ilog2.$(O) \ nasmlib/realpath.$(O) nasmlib/path.$(O) \ - nasmlib/filename.$(O) nasmlib/srcfile.$(O) \ + nasmlib/filename.$(O) \ nasmlib/zerobuf.$(O) nasmlib/readnum.$(O) nasmlib/bsi.$(O) \ nasmlib/rbtree.$(O) nasmlib/hashtbl.$(O) \ nasmlib/raa.$(O) nasmlib/saa.$(O) \ @@ -125,7 +125,7 @@ LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \ asm/segalloc.$(O) \ asm/preproc-nop.$(O) \ asm/rdstrnum.$(O) \ - \ + asm/srcfile.$(O) \ macros/macros.$(O) \ \ output/outform.$(O) output/outlib.$(O) output/legacy.$(O) \ diff --git a/nasmlib/srcfile.c b/asm/srcfile.c index 6fbe763f..158f83d2 100644 --- a/nasmlib/srcfile.c +++ b/asm/srcfile.c @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2016 The NASM Authors - All Rights Reserved + * Copyright 1996-2018 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -42,6 +42,7 @@ #include "nasmlib.h" #include "hashtbl.h" +#include "srcfile.h" static const char *file_name = NULL; static int32_t line_number = 0; diff --git a/asm/srcfile.h b/asm/srcfile.h new file mode 100644 index 00000000..4916730d --- /dev/null +++ b/asm/srcfile.h @@ -0,0 +1,58 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2016 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * These functions are used to keep track of the source code file and name. + */ +#ifndef ASM_SRCFILE_H +#define ASM_SRCFILE_H + +#include "compiler.h" + +void src_init(void); +void src_free(void); +const char *src_set_fname(const char *newname); +const char *src_get_fname(void); +int32_t src_set_linnum(int32_t newline); +int32_t src_get_linnum(void); +/* Can be used when there is no need for the old information */ +void src_set(int32_t line, const char *filename); +/* + * src_get gets both the source file name and line. + * It is also used if you maintain private status about the source location + * It return 0 if the information was the same as the last time you + * checked, -2 if the name changed and (new-old) if just the line changed. + */ +int32_t src_get(int32_t *xline, const char **xname); + +#endif /* ASM_SRCFILE_H */ diff --git a/include/nasm.h b/include/nasm.h index 1d26df98..f259d063 100644 --- a/include/nasm.h +++ b/include/nasm.h @@ -52,6 +52,7 @@ #include "labels.h" /* For enum mangle_index, enum label_type */ #include "opflags.h" #include "regs.h" +#include "srcfile.h" /* Time stamp for the official start of compilation */ struct compile_time { diff --git a/include/nasmlib.h b/include/nasmlib.h index ee8045e0..db624987 100644 --- a/include/nasmlib.h +++ b/include/nasmlib.h @@ -248,24 +248,8 @@ int bsi(const char *string, const char **array, int size); int bsii(const char *string, const char **array, int size); /* - * These functions are used to keep track of the source code file and name. + * Convenient string processing helper routines */ -void src_init(void); -void src_free(void); -const char *src_set_fname(const char *newname); -const char *src_get_fname(void); -int32_t src_set_linnum(int32_t newline); -int32_t src_get_linnum(void); -/* Can be used when there is no need for the old information */ -void src_set(int32_t line, const char *filename); -/* - * src_get gets both the source file name and line. - * It is also used if you maintain private status about the source location - * It return 0 if the information was the same as the last time you - * checked, -2 if the name changed and (new-old) if just the line changed. - */ -int32_t src_get(int32_t *xline, const char **xname); - char *nasm_skip_spaces(const char *p); char *nasm_skip_word(const char *p); char *nasm_zap_spaces_fwd(char *p); |