]> git.eshelyaron.com Git - emacs.git/commitdiff
* progmodes/sql.el: Version 3.1
authorMichael Mauger <mmaug@yahoo.com>
Mon, 10 Sep 2012 19:22:53 +0000 (15:22 -0400)
committerMichael Mauger <mmaug@yahoo.com>
Mon, 10 Sep 2012 19:22:53 +0000 (15:22 -0400)
(sql-db2-escape-newlines): New variable.
(sql-escape-newlines-filter): Use it.

etc/NEWS
lisp/ChangeLog
lisp/progmodes/sql.el

index 9f46e49b96f7e153d80ec1de7170f30621eea52d..ef68e2e561e9b99804f6744348e8370e3fbd6def 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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
index 0f1b744f427427b3adc55e22fa0814b1c09e5a48..a8bf45b6f90c048a460ceef5ad4b7219e30d55c9 100644 (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.
index 030cc02f3f4752de898ca82fc7477ca1f08e7f08..f3ecbe3fc3d1fb7ca8ab13d9ad110167ab68c75c 100644 (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/
 
 ;; 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
 
 \f
 
@@ -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)))))
 
 \f