[libbluray-devel] mpls_dump: use only public API. Use correct path separators.

hpi1 git at videolan.org
Tue Oct 28 09:25:56 CET 2014


libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Fri Oct 17 20:13:31 2014 +0300| [b145dc868a0f5035c685058bcf4d68f4acd28c98] | committer: hpi1

mpls_dump: use only public API. Use correct path separators.

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=b145dc868a0f5035c685058bcf4d68f4acd28c98
---

 src/Makefile.am          |    3 +--
 src/examples/mpls_dump.c |   30 +++++++++++++++++++++++++-----
 2 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 9fc4ce6..49971a2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -217,8 +217,7 @@ mpls_dump_CFLAGS = $(AM_CFLAGS)
 mpls_dump_SOURCES = \
 	examples/mpls_dump.c \
 	examples/util.c \
-	examples/util.h \
-	util/strutl.c
+	examples/util.h
 mpls_dump_LDADD = libbluray.la
 
 clpi_dump_CFLAGS = $(AM_CFLAGS)
diff --git a/src/examples/mpls_dump.c b/src/examples/mpls_dump.c
index a97ee33..523e444 100644
--- a/src/examples/mpls_dump.c
+++ b/src/examples/mpls_dump.c
@@ -25,13 +25,20 @@
 #include <string.h>
 #include <libgen.h>
 
-#include "util/strutl.h"
-
 #include "libbluray/bdnav/mpls_parse.h"
 #include "libbluray/bluray.h"
 
 #include "util.h"
 
+#ifdef _WIN32
+# define DIR_SEP "\\"
+# define PLAYLIST_DIR "\\BDMV\\PLAYLIST"
+#else
+# define DIR_SEP "/"
+# define PLAYLIST_DIR "/BDMV/PLAYLIST"
+#endif
+
+
 static int verbose;
 
 typedef struct {
@@ -146,6 +153,19 @@ _lookup_str(const VALUE_MAP *map, int val)
     return "?";
 }
 
+static char *
+_mk_path(const char *base, const char *sub)
+{
+    size_t n1 = strlen(base);
+    size_t n2 = strlen(sub);
+    char *result = malloc(n1 + n2 + 1);
+    strcpy(result, base);
+    strcat(result, DIR_SEP);
+    strcat(result, sub);
+
+    return result;
+}
+
 static void
 _show_stream(MPLS_STREAM *ss, int level)
 {
@@ -720,7 +740,7 @@ main(int argc, char *argv[])
         if (S_ISDIR(st.st_mode)) {
 
             printf("Directory: %s:\n", argv[ii]);
-            path = str_printf("%s/BDMV/PLAYLIST", argv[ii]);
+            path = _mk_path(argv[ii], PLAYLIST_DIR);
             if (path == NULL) {
                 fprintf(stderr, "Failed to find playlist path: %s\n", argv[ii]);
                 continue;
@@ -737,12 +757,12 @@ main(int argc, char *argv[])
             struct dirent *ent;
             int jj = 0;
             for (ent = readdir(dir); ent != NULL; ent = readdir(dir)) {
-                    dirlist[jj++] = str_dup(ent->d_name);
+                  dirlist[jj++] = strcpy(malloc(strlen(ent->d_name)), ent->d_name);
             }
             qsort(dirlist, jj, sizeof(char*), _qsort_str_cmp);
             for (jj = 0; dirlist[jj] != NULL; jj++) {
                 char *name = NULL;
-                name = str_printf("%s/%s", path, dirlist[jj]);
+                name = _mk_path(path, dirlist[jj]);
                 free(dirlist[jj]);
                 if (stat(name, &st)) {
                     free(name);



More information about the libbluray-devel mailing list