libbluray | branch: master | hpi1 <[email protected]> | Fri Aug 17 22:13:55 2012 +0300| [374039b47521fe7671f2b14359811a84a221a64e] | committer: hpi1
Replace non-C99 strdup() with own implementation > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=374039b47521fe7671f2b14359811a84a221a64e --- src/examples/mpls_dump.c | 2 +- src/libbluray/bdnav/navigation.c | 4 ++-- src/libbluray/bluray.c | 6 +++--- src/util/strutl.c | 6 ++++++ src/util/strutl.h | 1 + 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/examples/mpls_dump.c b/src/examples/mpls_dump.c index 6d0ed51..9b0a873 100644 --- a/src/examples/mpls_dump.c +++ b/src/examples/mpls_dump.c @@ -644,7 +644,7 @@ main(int argc, char *argv[]) int jj = 0; for (ent = readdir(dir); ent != NULL; ent = readdir(dir)) { if (ent->d_name != NULL) { - dirlist[jj++] = strdup(ent->d_name); + dirlist[jj++] = str_dup(ent->d_name); } } qsort(dirlist, jj, sizeof(char*), _qsort_str_cmp); diff --git a/src/libbluray/bdnav/navigation.c b/src/libbluray/bdnav/navigation.c index 46e47a7..f6ca0d8 100644 --- a/src/libbluray/bdnav/navigation.c +++ b/src/libbluray/bdnav/navigation.c @@ -277,7 +277,7 @@ char* nav_find_main_title(const char *root) mpls_free(pl_list[ii]); } if (count > 0) { - return strdup(longest); + return str_dup(longest); } else { return NULL; } @@ -464,7 +464,7 @@ NAV_TITLE* nav_title_open(const char *root, const char *playlist, unsigned angle if (title == NULL) { return NULL; } - title->root = strdup(root); + title->root = str_dup(root); strncpy(title->name, playlist, 11); title->name[10] = '\0'; path = str_printf("%s" DIR_SEP "BDMV" DIR_SEP "PLAYLIST" DIR_SEP "%s", diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index bcd3bc2..7e66f58 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -1003,7 +1003,7 @@ static void get_mount_point(BLURAY *bd) #endif if (!strcmp (m->mnt_fsname, bd->device_path)) { free(bd->device_path); - bd->device_path = strdup (m->mnt_dir); + bd->device_path = str_dup (m->mnt_dir); break; } } @@ -1033,7 +1033,7 @@ static void get_mount_point(BLURAY *bd) for ( int i = 0; i < fs_count; ++i) { if (!strcmp (mbuf[i].f_mntfromname, bd->device_path)) { free(bd->device_path); - bd->device_path = strdup (mbuf[i].f_mntonname); + bd->device_path = str_dup (mbuf[i].f_mntonname); } } } @@ -1059,7 +1059,7 @@ BLURAY *bd_open(const char* device_path, const char* keyfile_path) return NULL; } - bd->device_path = strdup(device_path); + bd->device_path = str_dup(device_path); #if (defined HAVE_MNTENT_H || defined __APPLE__) get_mount_point(bd); diff --git a/src/util/strutl.c b/src/util/strutl.c index 8330280..9831ebc 100644 --- a/src/util/strutl.c +++ b/src/util/strutl.c @@ -23,6 +23,12 @@ #include <stdarg.h> #include <stdlib.h> #include <ctype.h> +#include <string.h> + +char * str_dup(const char *str) +{ + return str ? strcpy (malloc(strlen(str) + 1), str) : NULL; +} char * str_printf(const char *fmt, ...) { diff --git a/src/util/strutl.h b/src/util/strutl.h index 4e87b4f..1e59cd6 100644 --- a/src/util/strutl.h +++ b/src/util/strutl.h @@ -24,6 +24,7 @@ #include <stdint.h> +BD_PRIVATE char * str_dup(const char *str) BD_ATTR_MALLOC; BD_PRIVATE char * str_printf(const char *fmt, ...) BD_ATTR_FORMAT_PRINTF(1,2) BD_ATTR_MALLOC; BD_PRIVATE uint32_t str_to_uint32(const char *s, int n); _______________________________________________ libbluray-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libbluray-devel
