added qse_stradup() and related functions

coded qse_dir_change() for win32
This commit is contained in:
2011-10-15 23:18:55 +00:00
parent 23ee1f7f51
commit 38500b97d6
8 changed files with 331 additions and 87 deletions

View File

@ -16,16 +16,22 @@ int path_main (int argc, qse_char_t* argv[])
return -1;
}
/*
canon = QSE_MMGR_ALLOC (QSE_MMGR_GETDFL(), (qse_strlen(argv[1]) + 1) * QSE_SIZEOF(*canon));
if (canon == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("Error: out of memory\n"));
return -1;
}
len = qse_canonpath (argv[1], canon);
qse_printf (QSE_T("[%s] => [%s] %d chars\n"), argv[1], canon, (int)len);
QSE_MMGR_FREE (QSE_MMGR_GETDFL(), canon);
QSE_MMGR_FREE (QSE_MMGR_GETDFL(), canon);
*/
qse_printf (QSE_T("[%s] => "), argv[1]);
len = qse_canonpath (argv[1], argv[1]);
qse_printf (QSE_T("[%s] %d chars\n"), argv[1], (int)len);
return 0;
}

View File

@ -3,24 +3,19 @@
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
int dir_main (int argc, qse_char_t* argv[])
static void list (qse_dir_t* dir, const qse_char_t* name)
{
int n;
qse_dir_t* dir;
qse_dir_ent_t* ent;
if (argc != 2)
if (qse_dir_change (dir, name) <= -1)
{
qse_fprintf (QSE_STDERR, QSE_T("Usage: %s <directory>\n"), argv[0]);
return -1;
}
qse_fprintf (QSE_STDERR, QSE_T("Error: Cannot change directory to %s\n"), name);
return;
}
dir = qse_dir_open (QSE_NULL, 0, argv[1]);
if (dir == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("Error: Cannot open directory\n"), argv[1]);
return -1;
}
qse_printf (QSE_T("----------------------------------------------------------------\n"), dir->curdir);
qse_printf (QSE_T("CURRENT DIRECTORY: [%s]\n"), dir->curdir);
qse_printf (QSE_T("----------------------------------------------------------------\n"), dir->curdir);
do
{
@ -34,6 +29,29 @@ int dir_main (int argc, qse_char_t* argv[])
}
while (1);
}
int dir_main (int argc, qse_char_t* argv[])
{
int n;
qse_dir_t* dir;
if (argc != 2)
{
qse_fprintf (QSE_STDERR, QSE_T("Usage: %s <directory>\n"), argv[0]);
return -1;
}
dir = qse_dir_open (QSE_NULL, 0);
if (dir == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("Error: Cannot open directory\n"), argv[1]);
return -1;
}
list (dir, argv[1]);
list (dir, QSE_T(".."));
qse_dir_close (dir);
return n;
}