added qse_substbasenamedup()/qse_substwcsbasenamedup()/qse_substmbsbasenamedup().

enhanced $INCLUDE handling in raddic
This commit is contained in:
2017-12-14 04:08:10 +00:00
parent 61483e294a
commit 1f56b6cf93
5 changed files with 269 additions and 184 deletions

View File

@ -25,6 +25,7 @@
*/
#include <qse/cmn/path.h>
#include <qse/cmn/str.h>
#define IS_MSEP(c) QSE_ISPATHMBSEP(c)
#define IS_WSEP(c) QSE_ISPATHWCSEP(c)
@ -52,3 +53,52 @@ const qse_wchar_t* qse_wcsbasename (const qse_wchar_t* path)
return (last == QSE_NULL)? path: (last + 1);
}
qse_mchar_t* qse_substmbsbasenamedup (const qse_mchar_t* path, const qse_mchar_t* file, qse_mmgr_t* mmgr)
{
const qse_mchar_t* b;
qse_mcstr_t seg[3];
qse_size_t idx = 0;
b = qse_mbsbasename(path);
if (b)
{
seg[idx].ptr = (qse_mchar_t*)path;
seg[idx].len = b - path;
idx++;
}
seg[idx].ptr = (qse_mchar_t*)file;
seg[idx].len = qse_mbslen(file);
idx++;
seg[idx].ptr = QSE_NULL;
seg[idx].len = 0;
return qse_mcstradup (seg, QSE_NULL, mmgr);
}
qse_wchar_t* qse_substwcsbasenamedup (const qse_wchar_t* path, const qse_wchar_t* file, qse_mmgr_t* mmgr)
{
const qse_wchar_t* b;
qse_wcstr_t seg[3];
qse_size_t idx = 0;
b = qse_wcsbasename(path);
if (b)
{
seg[idx].ptr = (qse_wchar_t*)path;
seg[idx].len = b - path;
idx++;
}
seg[idx].ptr = (qse_wchar_t*)file;
seg[idx].len = qse_wcslen(file);
idx++;
seg[idx].ptr = QSE_NULL;
seg[idx].len = 0;
return qse_wcstradup (seg, QSE_NULL, mmgr);
}