From 9c50cd7103e490f186beeedc1fe0e3df691e0b11 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 22 Oct 2016 14:15:22 -0500 Subject: [PATCH 1/2] Replaced shell-command with call-process. this fixes a couple issues: (1) when the mode is first loaded and plantuml-init is executed, Emacs window is split into two, which is not necessary. (2) under cygwin emacs and windows native Java combination, shell-quote-argument is cauisng file path format change and making Java unable to load jar file. file-exists-p is also skipped if cygwin emacs is running. --- plantuml-mode.el | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/plantuml-mode.el b/plantuml-mode.el index 6947bcd..48cf1a4 100644 --- a/plantuml-mode.el +++ b/plantuml-mode.el @@ -79,16 +79,12 @@ (defcustom plantuml-suppress-deprecation-warning t "To silence the deprecation warning when `puml-mode' is found upon loading.") -(defun plantuml-command-line () - "Compose the PlantUML command line as a string." - (mapconcat 'identity (cons plantuml-java-command plantuml-java-args) " ")) - (defun plantuml-render-command (&rest arguments) "Create a command line to execute PlantUML with arguments (as ARGUMENTS)." - (let ((cmd (concat (plantuml-command-line) " " (shell-quote-argument plantuml-jar-path))) - (argstring (mapconcat 'identity arguments " "))) - (plantuml-debug (format "Command is %s" cmd)) - (concat cmd " " argstring))) + (let* ((cmd-list (append plantuml-java-args (list plantuml-jar-path) arguments)) + (cmd (mapconcat 'identity cmd-list "|"))) + (plantuml-debug (format "Command is [%s]" cmd)) + cmd-list)) ;;; syntax table (defvar plantuml-mode-syntax-table @@ -134,11 +130,12 @@ (defun plantuml-init () "Initialize the keywords or builtins from the cmdline language output." - (unless (file-exists-p plantuml-jar-path) + (unless (or (eq system-type 'cygwin) (file-exists-p plantuml-jar-path)) (error "Could not find plantuml.jar at %s" plantuml-jar-path)) (with-temp-buffer - (let ((cmd (plantuml-render-command "-charset UTF-8 -language"))) - (shell-command cmd (current-buffer)) + (let ((cmd-args (append (list plantuml-java-command nil t nil) + (plantuml-render-command "-charset" "UTF-8" "-language")))) + (apply 'call-process cmd-args) (goto-char (point-min))) (let ((found (search-forward ";" nil t)) (word "") From 68e5e5258475d39a1dd989286c304923c4b56d1f Mon Sep 17 00:00:00 2001 From: Andrew Lyu Date: Fri, 28 Oct 2016 12:13:24 +0800 Subject: [PATCH 2/2] Remove duplicate rows --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 207e7f2..efbd62c 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,10 @@ Also, to enable preview you need to tell `plantuml-mode` where to locate the Pla # Enable the major mode -You can automatically enable `plantuml-mode` for files with extension `.plantuml` or `plantuml` by adding the following to your `.emacsrc`: +You can automatically enable `plantuml-mode` for files with extension `.plantuml` by adding the following to your `.emacsrc`: ;; Enable plantuml-mode for PlantUML files (add-to-list 'auto-mode-alist '("\\.plantuml\\'" . plantuml-mode)) - (add-to-list 'auto-mode-alist '("\\.plantuml\\'" . plantuml-mode)) Of course, you can always enable manually the major mode by typing `M-x plantuml-mode` once in the desired PlantUML file buffer.