diff --git a/org-babel.org b/org-babel.org index a298f6758..156388ae3 100644 --- a/org-babel.org +++ b/org-babel.org @@ -405,85 +405,9 @@ org-feed.el has a (require 'sha1) and org-publish.el uses it too. source code block, and lang is the language major mode. The latter might be unnecessary? -#+begin_example -diff --git a/lisp/org-src.el b/lisp/org-src.el -index 2083c77..2be21e6 100644 ---- a/lisp/org-src.el -+++ b/lisp/org-src.el -@@ -113,7 +113,7 @@ but which mess up the display of a snippet in Org exported files.") - - (defvar org-src-mode-map (make-sparse-keymap)) - (define-key org-src-mode-map "\C-c'" 'org-edit-src-exit) --(define-key org-src-mode-map "\C-x\C-s" 'org-edit-src-save) -+;; (define-key org-src-mode-map "\C-x\C-s" 'org-edit-src-save) - (defvar org-edit-src-force-single-line nil) - (defvar org-edit-src-from-org-mode nil) - (defvar org-edit-src-picture nil) -@@ -168,7 +168,8 @@ the edited version." - (if (boundp 'org-edit-src-overlay) - (org-delete-overlay org-edit-src-overlay))) - (kill-buffer buffer)) -- (setq buffer (generate-new-buffer "*Org Edit Src Example*")) -+ (setq buffer (generate-new-buffer -+ (concat "*Org Src " (file-name-nondirectory buffer-file-name) "[" lang "]*"))) - (setq ovl (org-make-overlay beg end)) - (org-overlay-put ovl 'face 'secondary-selection) - (org-overlay-put ovl 'edit-buffer buffer) -@@ -186,8 +187,7 @@ the edited version." - '(display nil invisible nil intangible nil)) - (org-do-remove-indentation) - (let ((org-inhibit-startup t)) -- (funcall lang-f) -- (org-src-mode)) -+ (funcall lang-f)) - (set (make-local-variable 'org-edit-src-force-single-line) single) - (set (make-local-variable 'org-edit-src-from-org-mode) org-mode-p) - (when lfmt -@@ -201,6 +201,7 @@ the edited version." - (org-set-local 'org-edit-src-end-marker end) - (org-set-local 'org-edit-src-overlay ovl) - (org-set-local 'org-edit-src-nindent nindent) -+ (org-src-mode) - (and org-edit-src-persistent-message - (org-set-local 'header-line-format msg))) - (message "%s" msg) -@@ -400,12 +401,13 @@ the language, a switch telling of the content should be in a single line." - (defun org-edit-src-exit () - "Exit special edit and protect problematic lines." - (interactive) -- (unless (string-match "\\`*Org Edit " (buffer-name (current-buffer))) -- (error "This is not an sub-editing buffer, something is wrong...")) -+ (unless org-edit-src-from-org-mode -+ (error "This is not a sub-editing buffer, something is wrong...")) - (let ((beg org-edit-src-beg-marker) - (end org-edit-src-end-marker) - (ovl org-edit-src-overlay) - (buffer (current-buffer)) -+ (buffer-file-name nil) - (nindent org-edit-src-nindent) - code line) - (untabify (point-min) (point-max)) -@@ -464,6 +466,17 @@ the language, a switch telling of the content should be in a single line." - (goto-char (min p (point-max))) - (message (or msg "")))) - -+(defun org-src-mode-configure-buffer () -+ (setq buffer-offer-save t) -+ (setq buffer-file-name -+ (concat (buffer-file-name (marker-buffer org-edit-src-beg-marker)) -+ "[" (buffer-name) "]")) -+ (setq write-contents-functions '(org-edit-src-save)) -+ (org-add-hook 'kill-buffer-hook -+ '(lambda () (org-delete-overlay org-edit-src-overlay)) nil 'local)) -+ -+(org-add-hook 'org-src-mode-hook 'org-src-mode-configure-buffer) -+ - (provide 'org-src) - - ;; arch-tag: 6a1fc84f-dec7-47be-a416-64be56bea5d8 - -#+end_example - + These changes were added to the main org repository in commit + 4b6988bf36cb458c9d113ee4332e016990c1eb04 + **** Detailed working notes to go with that patch ***** Recap of current org-src-mode