1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-22 18:35:09 +00:00

* progmodes/sql.el: Version 3.1

(sql-db2-escape-newlines): New variable.
(sql-escape-newlines-filter): Use it.
This commit is contained in:
Michael Mauger 2012-09-10 15:22:53 -04:00
parent 399a361b88
commit 04e082b0dd
3 changed files with 43 additions and 13 deletions

View File

@ -344,6 +344,14 @@ python-describe-symbol | python-eldoc-at-point
*** Accepts \r and \f as whitespace.
** SQL Mode
*** DB2 added `sql-db2-escape-newlines'
If non-nil, newlines sent to the command interpreter will be escaped
by a backslash. The default does not escape the newlines and assumes
that the sql statement will be terminated by a semicolon.
** Diff mode
Faces for changes now use the same diff color scheme as in modern VCSes

View File

@ -1,3 +1,9 @@
2012-09-10 Michael R. Mauger <mmaug@yahoo.com>
* progmodes/sql.el: Version 3.1
(sql-db2-escape-newlines): New variable.
(sql-escape-newlines-filter): Use it.
2012-09-10 Juanma Barranquero <lekktu@gmail.com>
* custom.el (custom-theme-load-confirm): Remove unneeded assignment.

View File

@ -4,7 +4,7 @@
;; Author: Alex Schroeder <alex@gnu.org>
;; Maintainer: Michael Mauger <mmaug@yahoo.com>
;; Version: 3.0
;; Version: 3.1
;; Keywords: comm languages processes
;; URL: http://savannah.gnu.org/projects/emacs/
@ -218,9 +218,12 @@
;; Michael Mauger <mmaug@yahoo.com> -- improved product support
;; Drew Adams <drew.adams@oracle.com> -- Emacs 20 support
;; Harald Maier <maierh@myself.com> -- sql-send-string
;; Stefan Monnier <monnier@iro.umontreal.ca> -- font-lock corrections; code polish
;; Stefan Monnier <monnier@iro.umontreal.ca> -- font-lock corrections;
;; code polish
;; Paul Sleigh <bat@flurf.net> -- MySQL keyword enhancement
;; Andrew Schein <andrew@andrewschein.com> -- sql-port bug
;; Ian Bjorhovde <idbjorh@dataproxy.com> -- db2 escape newlines
;; incorrectly enabled by default
@ -879,6 +882,16 @@ In older versions of SQL*Plus, this was the SET SCAN OFF command."
:type 'boolean
:group 'SQL)
(defcustom sql-db2-escape-newlines nil
"Non-nil if newlines should be escaped by a backslash in DB2 SQLi.
When non-nil, Emacs will automatically insert a space and
backslash prior to every newline in multi-line SQL statements as
they are submitted to an interactive DB2 session."
:version "24.3"
:type 'boolean
:group 'SQL)
;; Customization for SQLite
(defcustom sql-sqlite-program (or (executable-find "sqlite3")
@ -3188,20 +3201,23 @@ Placeholders are words starting with an ampersand like &this."
;; Using DB2 interactively, newlines must be escaped with " \".
;; The space before the backslash is relevant.
(defun sql-escape-newlines-filter (string)
"Escape newlines in STRING.
Every newline in STRING will be preceded with a space and a backslash."
(let ((result "") (start 0) mb me)
(while (string-match "\n" string start)
(setq mb (match-beginning 0)
me (match-end 0)
result (concat result
(substring string start mb)
(if (and (> mb 1)
(string-equal " \\" (substring string (- mb 2) mb)))
"" " \\\n"))
start me))
(concat result (substring string start))))
(if (not sql-db2-escape-newlines)
string
(let ((result "") (start 0) mb me)
(while (string-match "\n" string start)
(setq mb (match-beginning 0)
me (match-end 0)
result (concat result
(substring string start mb)
(if (and (> mb 1)
(string-equal " \\" (substring string (- mb 2) mb)))
"" " \\\n"))
start me))
(concat result (substring string start)))))