added qse_get_current_mbsdir()/qse_get_current_wcsdir().
writing qse_get_prog_path(). not yet done. implementing the Path class
This commit is contained in:
@ -33,6 +33,10 @@
|
||||
#undef strjoinv
|
||||
#undef strxjoin
|
||||
#undef strxjoinv
|
||||
#undef strcajoin
|
||||
#undef strcajoinv
|
||||
#undef strxcajoin
|
||||
#undef strxcajoinv
|
||||
#undef strcpy
|
||||
#undef strxcpy
|
||||
|
||||
@ -41,6 +45,10 @@
|
||||
#define strjoinv qse_mbsjoinv
|
||||
#define strxjoin qse_mbsxjoin
|
||||
#define strxjoinv qse_mbsxjoinv
|
||||
#define strcajoin qse_mbscajoin
|
||||
#define strcajoinv qse_mbscajoinv
|
||||
#define strxcajoin qse_mbsxcajoin
|
||||
#define strxcajoinv qse_mbsxcajoinv
|
||||
#define strcpy qse_mbscpy
|
||||
#define strxcpy qse_mbsxcpy
|
||||
#include "str-join.h"
|
||||
@ -52,6 +60,10 @@
|
||||
#undef strjoinv
|
||||
#undef strxjoin
|
||||
#undef strxjoinv
|
||||
#undef strcajoin
|
||||
#undef strcajoinv
|
||||
#undef strxcajoin
|
||||
#undef strxcajoinv
|
||||
#undef strcpy
|
||||
#undef strxcpy
|
||||
|
||||
@ -60,6 +72,10 @@
|
||||
#define strjoinv qse_wcsjoinv
|
||||
#define strxjoin qse_wcsxjoin
|
||||
#define strxjoinv qse_wcsxjoinv
|
||||
#define strcajoin qse_wcscajoin
|
||||
#define strcajoinv qse_wcscajoinv
|
||||
#define strxcajoin qse_wcsxcajoin
|
||||
#define strxcajoinv qse_wcsxcajoinv
|
||||
#define strcpy qse_wcscpy
|
||||
#define strxcpy qse_wcsxcpy
|
||||
#include "str-join.h"
|
||||
|
@ -89,3 +89,70 @@ qse_size_t strjoin (char_t* buf, ...)
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
qse_size_t strxcajoinv (char_t* buf, qse_size_t size, va_list ap)
|
||||
{
|
||||
const char_t* p;
|
||||
char_t* ptr;
|
||||
qse_size_t left, n;
|
||||
|
||||
n = strlen(buf);
|
||||
left = size - n;
|
||||
ptr = buf + n;
|
||||
|
||||
while (left > 0)
|
||||
{
|
||||
p = va_arg (ap, const char_t*);
|
||||
if (p == QSE_NULL) break;
|
||||
|
||||
n = strxcpy(ptr, left, p);
|
||||
left -= n; ptr += n;
|
||||
}
|
||||
|
||||
return size - left;
|
||||
}
|
||||
|
||||
qse_size_t strxcajoin (char_t* buf, qse_size_t size, ...)
|
||||
{
|
||||
va_list ap;
|
||||
qse_size_t n;
|
||||
|
||||
va_start (ap, size);
|
||||
n = strxcajoinv(buf, size, ap);
|
||||
va_end (ap);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
qse_size_t strcajoinv (char_t* buf, va_list ap)
|
||||
{
|
||||
const char_t* p;
|
||||
char_t* ptr = buf + strlen(buf);
|
||||
qse_size_t n;
|
||||
|
||||
while (1)
|
||||
{
|
||||
p = va_arg(ap, const char_t*);
|
||||
if (p == QSE_NULL) break;
|
||||
|
||||
n = strcpy(ptr, p);
|
||||
ptr += n;
|
||||
}
|
||||
|
||||
return ptr - buf;
|
||||
}
|
||||
|
||||
|
||||
qse_size_t strcajoin (char_t* buf, ...)
|
||||
{
|
||||
va_list ap;
|
||||
qse_size_t n;
|
||||
|
||||
va_start (ap, buf);
|
||||
n = strcajoinv(buf, ap);
|
||||
va_end (ap);
|
||||
|
||||
return n;
|
||||
}
|
||||
|
@ -505,6 +505,16 @@
|
||||
# define QSE_UTIMENSAT(dirfd,path,times,flags) utimensat(dirfd,path,times,flags)
|
||||
#endif
|
||||
|
||||
/*
|
||||
the library's getcwd() returns char* while the system call returns int.
|
||||
so it's not practical to define QSE_GETCWD().
|
||||
#if defined(SYS_getcwd) && defined(QSE_USE_SYSCALL)
|
||||
# define QSE_GETCWD(buf,size) syscall(SYS_getcwd,buf,size)
|
||||
#else
|
||||
# define QSE_GETCWD(buf,size) getcwd(buf,size)
|
||||
#endif
|
||||
*/
|
||||
|
||||
/* ===== DIRECTORY - not really system calls ===== */
|
||||
#define QSE_OPENDIR(name) opendir(name)
|
||||
#define QSE_CLOSEDIR(dir) closedir(dir)
|
||||
|
Reference in New Issue
Block a user