added qse_dir_geterrnum() and qse_dir_geterrmsg())

This commit is contained in:
hyung-hwan 2011-10-23 12:04:51 +00:00
parent 5cd5041ed3
commit 6e0c8bbf44
2 changed files with 42 additions and 4 deletions

View File

@ -24,6 +24,16 @@
#include <qse/types.h>
#include <qse/macros.h>
enum qse_dir_errnum_t
{
QSE_DIR_ENOERR = 0,
QSE_DIR_EINTERN,
QSE_DIR_ENOMEM,
QSE_DIR_EINVAL
};
typedef enum qse_dir_errnum_t qse_dir_errnum_t;
struct qse_dir_ent_t
{
enum
@ -36,8 +46,8 @@ struct qse_dir_ent_t
QSE_DIR_ENT_BLOCK,
QSE_DIR_ENT_LINK
} type;
qse_foff_t size;
qse_char_t* name;
qse_foff_t size;
};
typedef struct qse_dir_ent_t qse_dir_ent_t;
@ -45,9 +55,10 @@ typedef struct qse_dir_ent_t qse_dir_ent_t;
struct qse_dir_t
{
QSE_DEFINE_COMMON_FIELDS (dir)
qse_dir_ent_t ent;
qse_char_t* curdir;
void* info;
qse_dir_errnum_t errnum;
qse_dir_ent_t ent;
qse_char_t* curdir;
void* info;
};
typedef struct qse_dir_t qse_dir_t;
@ -76,6 +87,14 @@ void qse_dir_fini (
qse_dir_t* dir
);
qse_dir_errnum_t qse_dir_geterrnum (
qse_dir_t* dir
);
const qse_char_t* qse_dir_geterrmsg (
qse_dir_t* dir
);
qse_dir_ent_t* qse_dir_read (
qse_dir_t* dir
);

View File

@ -433,3 +433,22 @@ int qse_dir_rewind (qse_dir_t* dir)
return 0;
}
qse_dir_errnum_t qse_dir_geterrnum (qse_dir_t* dir)
{
return dir->errnum;
}
const qse_char_t* qse_dir_geterrmsg (qse_dir_t* dir)
{
static const qse_char_t* errstr[] =
{
QSE_T("no error"),
QSE_T("internal error that should never have happened"),
QSE_T("insufficient memory"),
QSE_T("invalid parameter or data"),
};
return (dir->errnum >= 0 && dir->errnum < QSE_COUNTOF(errstr))?
errstr[dir->errnum]: QSE_T("unknown error");
}