From 2af3b9c16e340ad034e57e949f09bbafc00bd52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Ezequiel=20Gallina?= Date: Tue, 19 Feb 2013 00:18:32 -0300 Subject: [PATCH] * progmodes/python.el (python-indent-context): Fix python-info-line-ends-backslash-p call. (python-info-line-ends-backslash-p) (python-info-beginning-of-backslash): Respect line-number argument. (python-info-current-line-comment-p): Fix behavior when not at beginning-of-line. (python-util-position): Remove function. (python-util-goto-line): New function. --- lisp/ChangeLog | 12 ++++++++++++ lisp/progmodes/python.el | 25 ++++++++++++------------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7d7e62e8141..f99cab9edbf 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2013-02-19 Fabián Ezequiel Gallina + + * progmodes/python.el (python-indent-context): Fix + python-info-line-ends-backslash-p call. + (python-info-line-ends-backslash-p) + (python-info-beginning-of-backslash): Respect line-number + argument. + (python-info-current-line-comment-p): Fix behavior when not at + beginning-of-line. + (python-util-position): Remove function. + (python-util-goto-line): New function. + 2013-02-18 Michael Albinus * eshell/em-unix.el (eshell/su): Require tramp. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 92f86ce1231..49eaff637a6 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -698,10 +698,9 @@ START is the buffer position where the sexp starts." ;; After backslash ((setq start (when (not (or (python-syntax-context 'string ppss) (python-syntax-context 'comment ppss))) - (let ((line-beg-pos (line-beginning-position))) - (when (python-info-line-ends-backslash-p - (1- line-beg-pos)) - (- line-beg-pos 2))))) + (let ((line-beg-pos (line-number-at-pos))) + (python-info-line-ends-backslash-p + (1- line-beg-pos))))) 'after-backslash) ;; After beginning of block ((setq start (save-excursion @@ -3105,7 +3104,7 @@ With optional argument LINE-NUMBER, check that line instead." (save-restriction (widen) (when line-number - (goto-char line-number)) + (python-util-goto-line line-number)) (while (and (not (eobp)) (goto-char (line-end-position)) (python-syntax-context 'paren) @@ -3121,7 +3120,7 @@ Optional argument LINE-NUMBER forces the line number to check against." (save-restriction (widen) (when line-number - (goto-char line-number)) + (python-util-goto-line line-number)) (when (python-info-line-ends-backslash-p) (while (save-excursion (goto-char (line-beginning-position)) @@ -3200,7 +3199,9 @@ operator." (defun python-info-current-line-comment-p () "Check if current line is a comment line." - (char-equal (or (char-after (+ (point) (current-indentation))) ?_) ?#)) + (char-equal + (or (char-after (+ (line-beginning-position) (current-indentation))) ?_) + ?#)) (defun python-info-current-line-empty-p () "Check if current line is empty, ignoring whitespace." @@ -3215,12 +3216,10 @@ operator." ;;; Utility functions -(defun python-util-position (item seq) - "Find the first occurrence of ITEM in SEQ. -Return the index of the matching item, or nil if not found." - (let ((member-result (member item seq))) - (when member-result - (- (length seq) (length member-result))))) +(defun python-util-goto-line (line-number) + "Move point to LINE-NUMBER." + (goto-char (point-min)) + (forward-line (1- line-number))) ;; Stolen from org-mode (defun python-util-clone-local-variables (from-buffer &optional regexp)