From 7aa8685f34dd045c712ed0f527cbe9758b1481dc Mon Sep 17 00:00:00 2001
From: Frederic Koehler <f.koehler427@gmail.com>
Date: Fri, 17 Aug 2012 00:06:25 -0400
Subject: [PATCH] dtcreate: Replace broken GetBaseName with basename

GetBaseName causes segfaults, because when the pathname
ends in a "/" it returns NULL. This happens when trying
to give a valid filename to dtcreate for an icon.
---
 cde/programs/dtcreate/cmnrtns.c | 21 ++-------------------
 1 file changed, 2 insertions(+), 19 deletions(-)

diff --git a/cde/programs/dtcreate/cmnrtns.c b/cde/programs/dtcreate/cmnrtns.c
index 20c7f35..38faa1c 100644
--- a/cde/programs/dtcreate/cmnrtns.c
+++ b/cde/programs/dtcreate/cmnrtns.c
@@ -33,6 +33,7 @@
 #include <Dt/Icon.h>
 #include <X11/cursorfont.h>
 #include "UxXt.h"
+#include <libgen.h>
 
 #include "dtcreate.h"
 #include "CreateActionAppShell.h"
@@ -41,24 +42,6 @@
 
 /*****************************************************************************/
 /*                                                                           */
-/*  GetBaseName                                                              */
-/*                                                                           */
-/*****************************************************************************/
-char * GetBaseName(char *pszFileName)
-{
-  char *name;
-
-  name = strrchr(pszFileName, '/');
-  if (name) {
-     name = strtok(name, "/");
-     return(name);
-  } else {
-     return(pszFileName);
-  }
-}
-
-/*****************************************************************************/
-/*                                                                           */
 /*  ReplaceSpaces                                                            */
 /*                                                                           */
 /*****************************************************************************/
@@ -273,7 +256,7 @@ void load_icons (Widget wid, XtPointer client_data,
   */
     {
     XtVaGetValues(IconSelector, XmNuserData, &iSource, NULL);
-    base_name = GetBaseName(path_and_base_name);
+    base_name = basename(path_and_base_name);
     ptr = XtMalloc(strlen(base_name) + 1);
     strcpy(ptr, base_name);
     switch (iSource) {
-- 
1.7.11.2

