[PATCH] D37903: Fix assume-filename handling in clang-format.el

Micah Werbitt via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 19 11:47:51 PDT 2017


werbitt updated this revision to Diff 115875.
werbitt edited the summary of this revision.
werbitt added a comment.

Rename assume-file to assume-file-name and update documentation


https://reviews.llvm.org/D37903

Files:
  tools/clang-format/clang-format.el


Index: tools/clang-format/clang-format.el
===================================================================
--- tools/clang-format/clang-format.el
+++ tools/clang-format/clang-format.el
@@ -119,20 +119,22 @@
       (byte-to-position (1+ byte)))))
 
 ;;;###autoload
-(defun clang-format-region (start end &optional style assume-file)
-  "Use clang-format to format the code between START and END according to STYLE.
-If called interactively uses the region or the current statement if there
-is no active region.  If no style is given uses `clang-format-style'."
+(defun clang-format-region (start end &optional style assume-file-name)
+  "Use clang-format to format the code between START and END according to STYLE
+using ASSUME-FILE-NAME to locate a style config file. If called interactively
+uses the region or the current statement if there is no active region. If no
+style is given uses `clang-format-style'. If no assume-file-name is given uses
+`buffer-file-name'."
   (interactive
    (if (use-region-p)
        (list (region-beginning) (region-end))
      (list (point) (point))))
 
   (unless style
     (setq style clang-format-style))
 
-  (unless assume-file
-    (setq assume-file buffer-file-name))
+  (unless assume-file-name
+    (setq assume-file-name buffer-file-name))
 
   (let ((file-start (clang-format--bufferpos-to-filepos start 'approximate
                                                         'utf-8-unix))
@@ -151,7 +153,12 @@
                              nil nil clang-format-executable
                              nil `(,temp-buffer ,temp-file) nil
                              `("-output-replacements-xml"
-                               ,@(and assume-file (list "-assume-filename" assume-file))
+                               ;; Gaurd against a nil assume-file-name.
+                               ;; If -assume-filename is given a blank string
+                               ;; it will crash as per the following bug report
+                               ;; https://bugs.llvm.org/show_bug.cgi?id=34667
+                               ,@(and assume-file-name
+                                      (list "-assume-filename" assume-file-name))
                                "-style" ,style
                                "-offset" ,(number-to-string file-start)
                                "-length" ,(number-to-string (- file-end file-start))
@@ -183,10 +190,12 @@
       (when (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
 
 ;;;###autoload
-(defun clang-format-buffer (&optional style assume-file)
-  "Use clang-format to format the current buffer according to STYLE."
+(defun clang-format-buffer (&optional style assume-file-name)
+  "Use clang-format to format the current buffer according to STYLE using
+ASSUME-FILE-NAME to locate a style config file. If no style is given uses
+`clang-format-style'. If no assume-file-name is given uses `buffer-file-name'."
   (interactive)
-  (clang-format-region (point-min) (point-max) style assume-file))
+  (clang-format-region (point-min) (point-max) style assume-file-name))
 
 ;;;###autoload
 (defalias 'clang-format 'clang-format-region)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37903.115875.patch
Type: text/x-patch
Size: 3152 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170919/5a6ee57e/attachment.bin>


More information about the cfe-commits mailing list