From: Dan Davison Date: Thu, 17 May 2012 03:03:39 +0000 (-0300) Subject: Don't send "if __name__ == '__main__':" to interpreter X-Git-Tag: emacs-24.2.90~1199^2~497 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6da55e5931e899acb1b7da2206967aa56da3ca0f;p=emacs.git Don't send "if __name__ == '__main__':" to interpreter --- diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 59802cca623..16a3befc3f2 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -320,6 +320,10 @@ `(decorator . ,(rx line-start (* space) ?@ (any letter ?_) (* (any word ?_)))) `(defun . ,(rx symbol-start (or "def" "class") symbol-end)) + `(if-name-main . ,(rx line-start "if" (+ space) "__name__" + (+ space) "==" (+ space) + (any ?' ?\") "__main__" (any ?' ?\") + (* space) ?:)) `(symbol-name . ,(rx (any letter ?_) (* (any word ?_)))) `(open-paren . ,(rx (or "{" "[" "("))) `(close-paren . ,(rx (or "}" "]" ")"))) @@ -1593,12 +1597,21 @@ Returns the output. See `python-shell-send-string-no-output'." (interactive "r") (python-shell-send-string (buffer-substring start end) nil t)) -(defun python-shell-send-buffer () - "Send the entire buffer to inferior Python process." - (interactive) +(defun python-shell-send-buffer (&optional arg) + "Send the entire buffer to inferior Python process. + +With prefix arg include lines protected by \"if __name__ == '__main__':\"" + (interactive "P") (save-restriction (widen) - (python-shell-send-region (point-min) (point-max)))) + (python-shell-send-region + (point-min) + (or (and + (not arg) + (save-excursion + (re-search-forward (python-rx if-name-main) nil t)) + (match-beginning 0)) + (point-max))))) (defun python-shell-send-defun (arg) "Send the current defun to inferior Python process.