aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/cedet/semantic/util-modes.el2
-rw-r--r--lisp/emulation/viper.el2
-rw-r--r--lisp/mail/feedmail.el2
-rw-r--r--lisp/progmodes/sql.el18
-rw-r--r--test/lisp/progmodes/sql-tests.el47
5 files changed, 65 insertions, 6 deletions
diff --git a/lisp/cedet/semantic/util-modes.el b/lisp/cedet/semantic/util-modes.el
index 6b80c96173c..4f7f0518dbf 100644
--- a/lisp/cedet/semantic/util-modes.el
+++ b/lisp/cedet/semantic/util-modes.el
@@ -712,7 +712,7 @@ minor mode is enabled."
712 ;; Disable minor mode if semantic stuff not available 712 ;; Disable minor mode if semantic stuff not available
713 (setq semantic-stickyfunc-mode nil) 713 (setq semantic-stickyfunc-mode nil)
714 (error "Buffer %s was not set up for parsing" (buffer-name))) 714 (error "Buffer %s was not set up for parsing" (buffer-name)))
715 (unless (boundp 'default-header-line-format) 715 (unless (boundp 'header-line-format)
716 ;; Disable if there are no header lines to use. 716 ;; Disable if there are no header lines to use.
717 (setq semantic-stickyfunc-mode nil) 717 (setq semantic-stickyfunc-mode nil)
718 (error "Sticky Function mode requires Emacs")) 718 (error "Sticky Function mode requires Emacs"))
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index 04a7c22e787..c5dac55522a 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -1234,7 +1234,7 @@ These two lines must come in the order given."))
1234(if (null viper-saved-non-viper-variables) 1234(if (null viper-saved-non-viper-variables)
1235 (setq viper-saved-non-viper-variables 1235 (setq viper-saved-non-viper-variables
1236 (list 1236 (list
1237 (cons 'default-major-mode (list (default-value 'major-mode))) 1237 (cons 'major-mode (list (default-value 'major-mode)))
1238 (cons 'next-line-add-newlines (list next-line-add-newlines)) 1238 (cons 'next-line-add-newlines (list next-line-add-newlines))
1239 (cons 'require-final-newline (list require-final-newline)) 1239 (cons 'require-final-newline (list require-final-newline))
1240 (cons 'scroll-step (list scroll-step)) 1240 (cons 'scroll-step (list scroll-step))
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index bb93cff96bc..eed664d088e 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -504,7 +504,7 @@ as-is. The filling is done after mail address alias expansion."
504 ) 504 )
505 505
506 506
507(defcustom feedmail-fill-to-cc-fill-column default-fill-column 507(defcustom feedmail-fill-to-cc-fill-column (default-value 'fill-column)
508 "Fill column used by `feedmail-fill-to-cc'." 508 "Fill column used by `feedmail-fill-to-cc'."
509 :group 'feedmail-headers 509 :group 'feedmail-headers
510 :type 'integer 510 :type 'integer
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index a11d4560aed..4d0bed77d56 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -1072,14 +1072,26 @@ add your name with a \"-U\" prefix (such as \"-Umark\") to the list."
1072 :version "20.8" 1072 :version "20.8"
1073 :group 'SQL) 1073 :group 'SQL)
1074 1074
1075(defcustom sql-postgres-login-params `((user :default ,(user-login-name)) 1075(defcustom sql-postgres-login-params
1076 (database :default ,(user-login-name)) 1076 `((user :default ,(user-login-name))
1077 server) 1077 (database :default ,(user-login-name)
1078 :completion ,(completion-table-dynamic
1079 (lambda (_) (sql-postgres-list-databases))))
1080 server)
1078 "List of login parameters needed to connect to Postgres." 1081 "List of login parameters needed to connect to Postgres."
1079 :type 'sql-login-params 1082 :type 'sql-login-params
1080 :version "24.1" 1083 :version "24.1"
1081 :group 'SQL) 1084 :group 'SQL)
1082 1085
1086(defun sql-postgres-list-databases ()
1087 "Return a list of available PostgreSQL databases."
1088 (when (executable-find sql-postgres-program)
1089 (let ((res '()))
1090 (dolist (row (process-lines sql-postgres-program "-ltX"))
1091 (when (string-match "^ \\([[:alnum:]-_]+\\) +|.*" row)
1092 (push (match-string 1 row) res)))
1093 (nreverse res))))
1094
1083;; Customization for Interbase 1095;; Customization for Interbase
1084 1096
1085(defcustom sql-interbase-program "isql" 1097(defcustom sql-interbase-program "isql"
diff --git a/test/lisp/progmodes/sql-tests.el b/test/lisp/progmodes/sql-tests.el
new file mode 100644
index 00000000000..e05247a60ed
--- /dev/null
+++ b/test/lisp/progmodes/sql-tests.el
@@ -0,0 +1,47 @@
1;;; sql-tests.el --- Tests for sql.el -*- lexical-binding: t; -*-
2
3;; Copyright (C) 2016 Free Software Foundation, Inc.
4
5;; Author: Simen Heggestøyl <simenheg@gmail.com>
6;; Keywords:
7
8;; This file is part of GNU Emacs.
9
10;; GNU Emacs is free software: you can redistribute it and/or modify
11;; it under the terms of the GNU General Public License as published by
12;; the Free Software Foundation, either version 3 of the License, or
13;; (at your option) any later version.
14
15;; GNU Emacs is distributed in the hope that it will be useful,
16;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;; GNU General Public License for more details.
19
20;; You should have received a copy of the GNU General Public License
21;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
22
23;;; Commentary:
24
25;;
26
27;;; Code:
28
29(require 'cl-lib)
30(require 'ert)
31(require 'sql)
32
33(ert-deftest sql-tests-postgres-list-databases ()
34 "Test that output from `psql -ltX' is parsed correctly."
35 (cl-letf
36 (((symbol-function 'executable-find)
37 (lambda (_command) t))
38 ((symbol-function 'process-lines)
39 (lambda (_program &rest _args)
40 '(" db-name-1 | foo-user | UTF8 | en_US.UTF-8 | en_US.UTF-8 | "
41 " db_name_2 | foo-user | UTF8 | en_US.UTF-8 | en_US.UTF-8 | "
42 ""))))
43 (should (equal (sql-postgres-list-databases)
44 '("db-name-1" "db_name_2")))))
45
46(provide 'sql-tests)
47;;; sql-tests.el ends here