keep drive letter when simplifying path (untested)
This commit is contained in:
parent
2b329c9343
commit
9dc689dd17
12
misc.c
12
misc.c
@ -32,7 +32,7 @@
|
|||||||
#include <grp.h>
|
#include <grp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.281 2017/10/11 19:06:44 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/misc.c,v 1.282 2017/10/11 20:46:14 tg Exp $");
|
||||||
|
|
||||||
#define KSH_CHVT_FLAG
|
#define KSH_CHVT_FLAG
|
||||||
#ifdef MKSH_SMALL
|
#ifdef MKSH_SMALL
|
||||||
@ -1785,7 +1785,7 @@ do_realpath(const char *upath)
|
|||||||
}
|
}
|
||||||
#ifdef MKSH_DOSPATH
|
#ifdef MKSH_DOSPATH
|
||||||
/* drive letter? */
|
/* drive letter? */
|
||||||
if (ctype(ip[0], C_ALPHA) && ip[1] == ':') {
|
if (mksh_drvltr(ip)) {
|
||||||
/* keep it */
|
/* keep it */
|
||||||
Xput(xs, xp, *ip++);
|
Xput(xs, xp, *ip++);
|
||||||
Xput(xs, xp, *ip++);
|
Xput(xs, xp, *ip++);
|
||||||
@ -1948,6 +1948,8 @@ make_path(const char *cwd, const char *file,
|
|||||||
* .. ..
|
* .. ..
|
||||||
* ./foo foo
|
* ./foo foo
|
||||||
* foo/../../../bar ../../bar
|
* foo/../../../bar ../../bar
|
||||||
|
* C:/../foo C:/foo
|
||||||
|
* C:../foo C:../foo
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
simplify_path(char *p)
|
simplify_path(char *p)
|
||||||
@ -1956,6 +1958,12 @@ simplify_path(char *p)
|
|||||||
size_t len;
|
size_t len;
|
||||||
bool needslash;
|
bool needslash;
|
||||||
|
|
||||||
|
#ifdef MKSH_DOSPATH
|
||||||
|
/* keep drive letter */
|
||||||
|
if (mksh_drvltr(p))
|
||||||
|
p += 2;
|
||||||
|
#endif
|
||||||
|
|
||||||
switch (*p) {
|
switch (*p) {
|
||||||
case 0:
|
case 0:
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user