]> granicus.if.org Git - clang/commitdiff
Insert clang-flags into the clang command. Currently it needs to be a list;
authorJohn McCall <rjmccall@apple.com>
Wed, 13 Jan 2010 06:44:51 +0000 (06:44 +0000)
committerJohn McCall <rjmccall@apple.com>
Wed, 13 Jan 2010 06:44:51 +0000 (06:44 +0000)
future work should permit strings (by splitting them into a list o' strings).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93299 91177308-0d34-0410-b5e6-96231b3b80d8

utils/clang-completion-mode.el

index 4164eac7ac8463614d983bf4dd54f73befa0be22..873127f5cd337829ed79e00bf2f6e656ffd1a4a6 100644 (file)
@@ -144,12 +144,21 @@ This variable will typically contain include paths, e.g., -I~/MyProject."
          ))))
 
 (defun clang-complete ()
-  (let ((ccstring (concat (buffer-file-name)
-                          ":"
-                          (number-to-string (+ 1 (current-line)))
-                          ":"
-                          (number-to-string (+ 1 (current-column)))))
-        (cc-buffer-name (concat "*Clang Completion for " (buffer-name) "*")))
+  (let* ((cc-point (concat (buffer-file-name)
+                           ":"
+                           (number-to-string (+ 1 (current-line)))
+                           ":"
+                           (number-to-string (+ 1 (current-column)))))
+         (cc-pch (if (equal clang-completion-prefix-header "") nil
+                   (list "-include-pch"
+                         (concat clang-completion-prefix-header ".pch"))))
+         (cc-flags (if (listp clang-flags) clang-flags nil))
+         (cc-command (append `(,clang "-cc1" "-fsyntax-only")
+                             cc-flags
+                             cc-pch
+                             `("-code-completion-at" ,cc-point)
+                             (list (buffer-file-name))))
+         (cc-buffer-name (concat "*Clang Completion for " (buffer-name) "*")))
     ;; Start the code-completion process
     (if (buffer-file-name)
         (progn
@@ -162,18 +171,9 @@ This variable will typically contain include paths, e.g., -I~/MyProject."
           (setq clang-result-string "")
           (setq clang-completion-buffer cc-buffer-name)
             
-          (let ((cc-proc
-                 (if (equal clang-completion-prefix-header "")
-                     (start-process "Clang Code-Completion" cc-buffer-name
-                                    clang "-cc1" "-fsyntax-only" 
-                                    "-code-completion-at" ccstring 
-                                    (buffer-file-name))
-                     (start-process "Clang Code-Completion" cc-buffer-name
-                                    clang "-cc1" "-fsyntax-only" 
-                                    "-code-completion-at" ccstring 
-                                    "-include-pch" 
-                                    (concat clang-completion-prefix-header ".pch")
-                                    (buffer-file-name)))))
+          (let ((cc-proc (apply 'start-process
+                                (append (list "Clang Code-Completion" cc-buffer-name)
+                                        cc-command))))
             (set-process-filter cc-proc 'clang-completion-stash-filter)
             (set-process-sentinel cc-proc 'clang-completion-sentinel)
             )))))