aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmdedit.c13
-rw-r--r--shell/cmdedit.c13
2 files changed, 26 insertions, 0 deletions
diff --git a/cmdedit.c b/cmdedit.c
index e317b86fa..a3710812f 100644
--- a/cmdedit.c
+++ b/cmdedit.c
@@ -441,6 +441,19 @@ static void parse_prompt(const char *prmt_ptr)
add_to_prompt(&prmt_mem_ptr, &alm, &prmt_len, pwd_buf);
continue;
#endif
+ case 'W':
+ if (pwd_buf[0] == 0) {
+ char *z;
+
+ getcwd(pwd_buf, PATH_MAX);
+ z = strrchr(pwd_buf,'/');
+ if ( (z != NULL) && (z != pwd_buf) ) {
+ z++;
+ strcpy(pwd_buf,z);
+ }
+ }
+ add_to_prompt(&prmt_mem_ptr, &alm, &prmt_len, pwd_buf);
+ continue;
case '!':
snprintf(buf, sizeof(buf), "%d", num_ok_lines);
add_to_prompt(&prmt_mem_ptr, &alm, &prmt_len, buf);
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index e317b86fa..a3710812f 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -441,6 +441,19 @@ static void parse_prompt(const char *prmt_ptr)
add_to_prompt(&prmt_mem_ptr, &alm, &prmt_len, pwd_buf);
continue;
#endif
+ case 'W':
+ if (pwd_buf[0] == 0) {
+ char *z;
+
+ getcwd(pwd_buf, PATH_MAX);
+ z = strrchr(pwd_buf,'/');
+ if ( (z != NULL) && (z != pwd_buf) ) {
+ z++;
+ strcpy(pwd_buf,z);
+ }
+ }
+ add_to_prompt(&prmt_mem_ptr, &alm, &prmt_len, pwd_buf);
+ continue;
case '!':
snprintf(buf, sizeof(buf), "%d", num_ok_lines);
add_to_prompt(&prmt_mem_ptr, &alm, &prmt_len, buf);