* details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
+ * License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
+#include <errno.h>
#if defined(_AIX) || defined(__apollo)
#include <sys/dir.h>
/* read the directory $HOME/.dt/backdrops */
string = (char *)XtMalloc(strlen(style.home) + strlen("/.dt/backdrops") + 1);
- sprintf(string, "%s/.dt/backdrops", style.home);
- ReadBitmapDirectory(string);
if (string != NULL)
+ {
+ sprintf(string, "%s/.dt/backdrops", style.home);
+ ReadBitmapDirectory(string);
XtFree(string);
+ }
if (backdrops.tmpNumBitmaps == 0)
{
filep = readdir(dirp);
continue;
}
-
- /* strip suffix off filename */
name = (char *) XtMalloc(strlen(filep->d_name) + 1);
strcpy (name, filep->d_name);
- (void)strtok(name, ".");
+
+ /* strip suffix off filename if it's a .pm or .bm
+ * motif requires other formats like jpg, png etc to
+ * have the extension on to work with the XmGetPixmap() calls */
+ if(strlen(name) > 3
+ && (0 == strcmp(name + strlen(name) - 3, ".pm")
+ || 0 == strcmp(name + strlen(name) - 3, ".bm")))
+ {
+ (void)strtok(name, ".");
+ }
+
/* check for duplicates */
duplicate = 0;
backdrops.selected);
sprintf(bufr, "%s*backdropsDialog.selectedItem: %s\n", bufr,
backdrops.bitmapNames[backdrops.selected]);
- write (fd, bufr, strlen(bufr));
+ if(-1 == write (fd, bufr, strlen(bufr))) {
+ perror(strerror(errno));
+ }
}
}