introduce mksh_drvltr(s) short-hand macro
This commit is contained in:
parent
f20af3a14f
commit
2b329c9343
12
sh.h
12
sh.h
@ -182,7 +182,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef EXTERN
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.841 2017/08/29 13:38:31 tg Exp $");
|
||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.842 2017/10/11 20:29:05 tg Exp $");
|
||||
#endif
|
||||
#define MKSH_VERSION "R56 2017/08/29"
|
||||
|
||||
@ -2734,11 +2734,14 @@ extern int tty_init_fd(void); /* initialise tty_fd, tty_devtty */
|
||||
#endif
|
||||
|
||||
#ifdef MKSH_DOSPATH
|
||||
#define mksh_drvltr(s) __extension__({ \
|
||||
const char *mksh_drvltr_s = (s); \
|
||||
(ctype(mksh_drvltr_s[0], C_ALPHA) && mksh_drvltr_s[1] == ':'); \
|
||||
})
|
||||
#define mksh_abspath(s) __extension__({ \
|
||||
const char *mksh_abspath_s = (s); \
|
||||
(mksh_cdirsep(mksh_abspath_s[0]) || \
|
||||
(ctype(mksh_abspath_s[0], C_ALPHA) && \
|
||||
mksh_abspath_s[1] == ':')); \
|
||||
mksh_drvltr(mksh_abspath_s)); \
|
||||
})
|
||||
#define mksh_cdirsep(c) __extension__({ \
|
||||
char mksh_cdirsep_c = (c); \
|
||||
@ -2746,8 +2749,7 @@ extern int tty_init_fd(void); /* initialise tty_fd, tty_devtty */
|
||||
})
|
||||
#define mksh_sdirsep(s) __extension__({ \
|
||||
const char *mksh_sdirsep_s = (s); \
|
||||
((char *)((ctype(mksh_sdirsep_s[0], C_ALPHA) && \
|
||||
mksh_sdirsep_s[1] == ':' && \
|
||||
((char *)((mksh_drvltr(mksh_sdirsep_s) && \
|
||||
!mksh_cdirsep(mksh_sdirsep_s[2])) ? \
|
||||
(mksh_sdirsep_s + 1) : strpbrk(mksh_sdirsep_s, "/\\"))); \
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user