]> granicus.if.org Git - yasm/commitdiff
In preparation for more file handling functions to get moved to libyasm,
authorPeter Johnson <peter@tortall.net>
Tue, 28 Mar 2006 02:20:28 +0000 (02:20 -0000)
committerPeter Johnson <peter@tortall.net>
Tue, 28 Mar 2006 02:20:28 +0000 (02:20 -0000)
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

Mkfiles/Makefile.dj
Mkfiles/Makefile.flat
Mkfiles/vc/libyasm/libyasm.vcproj
Mkfiles/vc8/libyasm/libyasm.vcproj
libyasm/Makefile.inc
libyasm/coretype.h
libyasm/file.c
libyasm/file.h
libyasm/splitpath.c [deleted file]

index eb3c0d546ef4b1421a2c599ae5157f347e75599a..421bc69266e67cebd7d8686cbbbd1fa4ea50a9ed 100644 (file)
@@ -31,7 +31,6 @@ LIBYASM_OBJS= \
  libyasm/mergesort.o \
  libyasm/phash.o \
  libyasm/section.o \
- libyasm/splitpath.o \
  libyasm/strcasecmp.o \
  libyasm/strsep.o \
  libyasm/symrec.o \
index bf19806e197086f120bc9d289ac9e0a8372d5e2c..7e34bd24924e9d6b2d6170d58fc41c4921a83ad9 100644 (file)
@@ -34,7 +34,6 @@ LIBYASM_OBJS= \
  libyasm/mergesort.o \
  libyasm/phash.o \
  libyasm/section.o \
- libyasm/splitpath.o \
  libyasm/strcasecmp.o \
  libyasm/strsep.o \
  libyasm/symrec.o \
index f4b14f185b66bb92787393108db54536793767a9..c586293c5d74d64892fce58baef00b64a5492d80 100644 (file)
                        <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
index c94416100f46e05ee46bd0622fa138dcd7248a1e..3a72ec011743a3023e85109d92a43b0f94978693 100644 (file)
                                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
index db5351cfdf9d53bea4c2e439c31eb5f94506414b..105173cb34c5f5caf1e6795d82257a7440b40ad8 100644 (file)
@@ -15,7 +15,6 @@ libyasm_a_SOURCES += libyasm/md5.c
 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
index 4c51ef0a1608526013e9ca425b69e9380d5d27c4..14ebc43d1650352b890354062c07932bd431dcaa 100644 (file)
@@ -311,47 +311,6 @@ int yasm__strcasecmp(const char *s1, const char *s2);
  */
 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
index 4ff42bebe0b3fab5ae7a312954f6407c50aee747..598579bc2883cea26f76f149bb4cd8f2ee9068d3 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * 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
@@ -24,6 +24,8 @@
  * 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)
 {
index 70ff3a007d523e1888f1466b5a1ceda33f2c900e..1df3db89c8f39c8d19ad2630ccc1e0f0d3338c31 100644 (file)
@@ -1,13 +1,13 @@
 /**
  * \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
diff --git a/libyasm/splitpath.c b/libyasm/splitpath.c
deleted file mode 100644 (file)
index 5629ada..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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;
-}
-