Set emacs default mode for the GDB directory to C++

Message ID 20161216192932.11323-1-antoine.tremblay@ericsson.com
State New, archived
Headers

Commit Message

Antoine Tremblay Dec. 16, 2016, 7:29 p.m. UTC
  Since GDB has switched to C++ but the file names are still .c emacs does
not load the proper mode when opening files in the gdb directory.

This patch fixes that by enabling c++ mode.

This patch also fixes indentation tweaks as discussed in this thread:
https://sourceware.org/ml/gdb-patches/2016-12/msg00074.html

Indent with gdb-code-style.el included and the .dir-locals.el is as such:

namespace TestNameSpace {

class test
{
public:
  test test() {}

  int m_a;
};

struct teststruct
{
  int a;
}
}

gdb/ChangeLog:

	* .dir-locals.el: Set c++ mode for the directory and set indent
	properly.
	* gdb-code-style.el: Set c-set-offset 'innamespace as a safe value
	to be used in .dir-locals.el.
---
 gdb/.dir-locals.el    | 7 ++++++-
 gdb/gdb-code-style.el | 4 ++++
 2 files changed, 10 insertions(+), 1 deletion(-)
  

Patch

diff --git a/gdb/.dir-locals.el b/gdb/.dir-locals.el
index fbd9309aef..8ac52393fc 100644
--- a/gdb/.dir-locals.el
+++ b/gdb/.dir-locals.el
@@ -20,5 +20,10 @@ 
 	      (indent-tabs-mode . t)))
  (nil . ((bug-reference-url-format . "http://sourceware.org/bugzilla/show_bug.cgi?id=%s")))
  (c-mode . ((c-file-style . "GNU")
-	    (indent-tabs-mode . t)))
+	    (mode . c++)
+	    (indent-tabs-mode . t)
+	    (tab-width . 8)
+	    (c-basic-offset . 2)
+	    (eval . (c-set-offset 'innamespace [0]))
+	    ))
 )
diff --git a/gdb/gdb-code-style.el b/gdb/gdb-code-style.el
index 6099c1d4b8..7070170f55 100644
--- a/gdb/gdb-code-style.el
+++ b/gdb/gdb-code-style.el
@@ -74,4 +74,8 @@ 
   )
 (add-hook 'c-mode-common-hook 'gdb-comment-hook)
 
+;; Set c-set-offset 'innamespace as a safe value to be used in .dir-locals.el.
+(setq safe-local-variable-values
+      '((eval c-set-offset 'innamespace [0])
+	(c-offsets-alist (innamespace .[0]))))
 ;;; gdb-code-style.el ends here