merge splitpath functions into file.c/h.
* splitpath.c: Remove, moving functions to
* file.c: Here.
* coretype.h: Move splitpath prototypes to
* file.h: Here.
* libyasm/Makefile.inc: Update to remove splitpath.c compilation.
* Mkfiles: Likewise.
svn path=/trunk/yasm/; revision=1433
libyasm/mergesort.o \
libyasm/phash.o \
libyasm/section.o \
- libyasm/splitpath.o \
libyasm/strcasecmp.o \
libyasm/strsep.o \
libyasm/symrec.o \
libyasm/mergesort.o \
libyasm/phash.o \
libyasm/section.o \
- libyasm/splitpath.o \
libyasm/strcasecmp.o \
libyasm/strsep.o \
libyasm/symrec.o \
<File\r
RelativePath="..\..\..\libyasm\section.c">\r
</File>\r
- <File\r
- RelativePath="..\..\..\libyasm\splitpath.c">\r
- </File>\r
<File\r
RelativePath="..\..\..\libyasm\strcasecmp.c">\r
</File>\r
RelativePath="..\..\..\libyasm\section.c"\r
>\r
</File>\r
- <File\r
- RelativePath="..\..\..\libyasm\splitpath.c"\r
- >\r
- </File>\r
<File\r
RelativePath="..\..\..\libyasm\strcasecmp.c"\r
>\r
libyasm_a_SOURCES += libyasm/mergesort.c
libyasm_a_SOURCES += libyasm/phash.c
libyasm_a_SOURCES += libyasm/section.c
-libyasm_a_SOURCES += libyasm/splitpath.c
libyasm_a_SOURCES += libyasm/strcasecmp.c
libyasm_a_SOURCES += libyasm/strsep.c
libyasm_a_SOURCES += libyasm/symrec.c
*/
int yasm__strncasecmp(const char *s1, const char *s2, size_t n);
-/** Split a UNIX pathname into head (directory) and tail (base filename)
- * portions.
- * \internal
- * \param path pathname
- * \param tail (returned) base filename
- * \return Length of head (directory).
- */
-size_t yasm__splitpath_unix(const char *path, /*@out@*/ const char **tail);
-
-/** Split a Windows pathname into head (directory) and tail (base filename)
- * portions.
- * \internal
- * \param path pathname
- * \param tail (returned) base filename
- * \return Length of head (directory).
- */
-size_t yasm__splitpath_win(const char *path, /*@out@*/ const char **tail);
-
-#ifndef yasm__splitpath
-/** Split a pathname into head (directory) and tail (base filename) portions.
- * Unless otherwise defined, defaults to yasm__splitpath_unix().
- * \internal
- * \param path pathname
- * \param tail (returned) base filename
- * \return Length of head (directory).
- */
-# if defined (_WIN32) || defined (WIN32) || defined (__MSDOS__) || \
- defined (__DJGPP__) || defined (__OS2__) || defined (__CYGWIN__) || \
- defined (__CYGWIN32__)
-# define yasm__splitpath(path, tail) yasm__splitpath_win(path, tail)
-# ifndef YASM_PATHSEP
-# define YASM_PATHSEP '\\'
-# endif
-# else
-# define yasm__splitpath(path, tail) yasm__splitpath_unix(path, tail)
-# ifndef YASM_PATHSEP
-# define YASM_PATHSEP '/'
-# endif
-# endif
-#endif
-
/** strdup() implementation using yasm_xmalloc().
* \internal
* \param str string
/*
- * Little-endian file functions.
+ * File helper functions.
*
- * Copyright (C) 2001 Peter Johnson
+ * Copyright (C) 2001-2006 Peter Johnson
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
+#include <ctype.h>
+
#define YASM_LIB_INTERNAL
#include "util.h"
/*@unused@*/ RCSID("$Id$");
#include "file.h"
+size_t
+yasm__splitpath_unix(const char *path, /*@out@*/ const char **tail)
+{
+ const char *s;
+ s = strrchr(path, '/');
+ if (!s) {
+ /* No head */
+ *tail = path;
+ return 0;
+ }
+ *tail = s+1;
+ /* Strip trailing slashes on path (except leading) */
+ while (s>path && *s == '/')
+ s--;
+ /* Return length of head */
+ return s-path+1;
+}
+
+size_t
+yasm__splitpath_win(const char *path, /*@out@*/ const char **tail)
+{
+ const char *basepath = path;
+ const char *s;
+
+ /* split off drive letter first, if any */
+ if (isalpha(path[0]) && path[1] == ':')
+ basepath += 2;
+
+ s = basepath;
+ while (*s != '\0')
+ s++;
+ while (s >= basepath && *s != '\\' && *s != '/')
+ s--;
+ if (s < basepath) {
+ *tail = basepath;
+ if (path == basepath)
+ return 0; /* No head */
+ else
+ return 2; /* Drive letter is head */
+ }
+ *tail = s+1;
+ /* Strip trailing slashes on path (except leading) */
+ while (s>basepath && (*s == '/' || *s == '\\'))
+ s--;
+ /* Return length of head */
+ return s-path+1;
+}
+
size_t
yasm_fwrite_16_l(unsigned short val, FILE *f)
{
/**
* \file libyasm/file.h
- * \brief YASM big and little endian file interface.
+ * \brief YASM file helpers.
*
* \rcs
* $Id$
* \endrcs
*
* \license
- * Copyright (C) 2001 Peter Johnson
+ * Copyright (C) 2001-2006 Peter Johnson
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
#ifndef YASM_FILE_H
#define YASM_FILE_H
+/** Split a UNIX pathname into head (directory) and tail (base filename)
+ * portions.
+ * \internal
+ * \param path pathname
+ * \param tail (returned) base filename
+ * \return Length of head (directory).
+ */
+size_t yasm__splitpath_unix(const char *path, /*@out@*/ const char **tail);
+
+/** Split a Windows pathname into head (directory) and tail (base filename)
+ * portions.
+ * \internal
+ * \param path pathname
+ * \param tail (returned) base filename
+ * \return Length of head (directory).
+ */
+size_t yasm__splitpath_win(const char *path, /*@out@*/ const char **tail);
+
+#ifndef yasm__splitpath
+/** Split a pathname into head (directory) and tail (base filename) portions.
+ * Unless otherwise defined, defaults to yasm__splitpath_unix().
+ * \internal
+ * \param path pathname
+ * \param tail (returned) base filename
+ * \return Length of head (directory).
+ */
+# if defined (_WIN32) || defined (WIN32) || defined (__MSDOS__) || \
+ defined (__DJGPP__) || defined (__OS2__) || defined (__CYGWIN__) || \
+ defined (__CYGWIN32__)
+# define yasm__splitpath(path, tail) yasm__splitpath_win(path, tail)
+# else
+# define yasm__splitpath(path, tail) yasm__splitpath_unix(path, tail)
+# endif
+#endif
+
+#ifndef YASM_PATHSEP
+/** Default path separator; used when combining path components.
+ * Unless otherwise defined, defaults to the UNIX '/'.
+ * \internal
+ */
+# if defined (_WIN32) || defined (WIN32) || defined (__MSDOS__) || \
+ defined (__DJGPP__) || defined (__OS2__) || defined (__CYGWIN__) || \
+ defined (__CYGWIN32__)
+# define YASM_PATHSEP '\\'
+# else
+# define YASM_PATHSEP '/'
+# endif
+#endif
+
/** Write an 8-bit value to a buffer, incrementing buffer pointer.
* \note Only works properly if ptr is an (unsigned char *).
* \param ptr buffer
+++ /dev/null
-/*
- * Split a path into directory name and file name.
- *
- * Copyright (C) 2006 Peter Johnson
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. 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 AUTHOR AND OTHER 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 AUTHOR OR OTHER 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.
- */
-#include <ctype.h>
-
-#define YASM_LIB_INTERNAL
-#include "util.h"
-/*@unused@*/ RCSID("$Id$");
-
-#include "coretype.h"
-
-size_t
-yasm__splitpath_unix(const char *path, /*@out@*/ const char **tail)
-{
- const char *s;
- s = strrchr(path, '/');
- if (!s) {
- /* No head */
- *tail = path;
- return 0;
- }
- *tail = s+1;
- /* Strip trailing slashes on path (except leading) */
- while (s>path && *s == '/')
- s--;
- /* Return length of head */
- return s-path+1;
-}
-
-size_t
-yasm__splitpath_win(const char *path, /*@out@*/ const char **tail)
-{
- const char *basepath = path;
- const char *s;
-
- /* split off drive letter first, if any */
- if (isalpha(path[0]) && path[1] == ':')
- basepath += 2;
-
- s = basepath;
- while (*s != '\0')
- s++;
- while (s >= basepath && *s != '\\' && *s != '/')
- s--;
- if (s < basepath) {
- *tail = basepath;
- if (path == basepath)
- return 0; /* No head */
- else
- return 2; /* Drive letter is head */
- }
- *tail = s+1;
- /* Strip trailing slashes on path (except leading) */
- while (s>basepath && (*s == '/' || *s == '\\'))
- s--;
- /* Return length of head */
- return s-path+1;
-}
-