[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/bash-completion 208cb5ab76 007/313: Join
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/bash-completion 208cb5ab76 007/313: Join |
Date: |
Sat, 3 Dec 2022 10:59:00 -0500 (EST) |
branch: elpa/bash-completion
commit 208cb5ab76d6f24acf6f484f4d67bdd91d92d32e
Author: Stephane Zermatten <szermatt@gmx.net>
Commit: Stephane Zermatten <szermatt@gmx.net>
Join
---
bash-complete.el | 16 ++++++++++------
bash-complete_test.el | 8 ++++++++
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/bash-complete.el b/bash-complete.el
index d12720c2b0..f769d14afa 100644
--- a/bash-complete.el
+++ b/bash-complete.el
@@ -24,12 +24,16 @@ Call bash to do the completion."
(bash-complete-comm
line pos words cword)))))
-;; "hell o" wor\ ld 'baa baaaa'a"hell o"world a
-
-;; (progn
-;; (load-library "~/.emacs.d/bash-complete.el")
-;; (let ((start 64) (end 108))
-;; (bash-complete-split start end 80)))
+(defun bash-complete-join (words)
+ "Join WORDS into a shell line, escaped all words with single quotes"
+ (if words
+ (concat "'"
+ (mapconcat
+ (lambda (word)
+ (replace-regexp-in-string "'" "\\\'" word :literal t))
+ words "' '")
+ "'")
+ ""))
(defun bash-complete-split (start end pos)
"Split LINE like bash would do, keep track of current word at POS.
diff --git a/bash-complete_test.el b/bash-complete_test.el
index ed832ec4b4..7f7efe2f71 100644
--- a/bash-complete_test.el
+++ b/bash-complete_test.el
@@ -28,6 +28,14 @@
;; GRADER - the desired result or a sexp which determines
;; how we did
+ ("bash-complete-join simple"
+ (bash-complete-join '("a" "hello" "world" "b" "c"))
+ "'a' 'hello' 'world' 'b' 'c'")
+
+ ("bash-complete-join escape quote"
+ (bash-complete-join '("a" "hel'lo" "world" "b" "c"))
+ "'a' 'hel\\'lo' 'world' 'b' 'c'")
+
("bash-complete-split simple"
(sz-testutils-with-buffer
'("a hello world b c")
- [nongnu] branch elpa/bash-completion created (now 8e9c20dbfe), ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 7dc290e1c7 003/313: exclude quotes from result, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 540f8f516a 011/313: build bash cmdline, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 6eebe8f965 016/313: cleaned up process launch, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 34d11220dd 024/313: add prefix if missing, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 3036ef0394 028/313: disable quote_readline to get good whitespace handling for bash 3.2 at least, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion ba83e81651 053/313: bash-completion-generate-line, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion f7bfc68ea2 001/313: bash completion, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion f5885ec87a 002/313: test case for bash-complete, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 208cb5ab76 007/313: Join,
ELPA Syncer <=
- [nongnu] elpa/bash-completion 47a890dd72 010/313: launch process, send commands, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 53f2c5d30e 009/313: parse complete -p output, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 11e52fce6f 018/313: Fixed initialization, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion c10cfef5b8 015/313: complex line split, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion b5c2fbf4a2 014/313: add hooks, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 9eb026ae0b 025/313: fixed current directory for adding slash, workaround for bash ~ expansion, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 02d1acf260 030/313: wordbreaks, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 5931a2ba43 037/313: completion-fix, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion a78fd6b587 044/313: turn off mailwarn and checkjobs, continue if this failed, ELPA Syncer, 2022/12/03
- [nongnu] elpa/bash-completion 0ffaad3ef0 035/313: wordbreak-split, ELPA Syncer, 2022/12/03