From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id KHbzLKV7MGVktQAA9RJhRA:P1 (envelope-from ) for ; Thu, 19 Oct 2023 02:43:17 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id KHbzLKV7MGVktQAA9RJhRA (envelope-from ) for ; Thu, 19 Oct 2023 02:43:17 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D36693E1B1 for ; Thu, 19 Oct 2023 02:43:16 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=att.net header.s=s1024 header.b=QU1E4cz1; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1697676197; a=rsa-sha256; cv=none; b=J25uQ9XK6baiQGzoBTGOP2nNQipS4qdVezuGtd7BhxExSsYnxhxcsLfhx6O1yiAXTmegbK gdvjM5dI7bS5Z0yXP6YgJcrZoLzrOiF4CqPBZTryVZ1hHgiFQeqnjISV3BUGaGqeCy7wUQ 3lr/sRMYMUmaR2uNk2ZtqnzdEMQx0tDSaO9V37ZBHpNubbldiNGLGrULq/Ks48dIyigXSS 3PeWanK2ZoFwN8SyvpneUH/GfUO0fkYMl5OU2j2fJgdBKkY90MrbP6xgKAA6BhR9Wq8QLM BkVoBBB/DXOnQVkb5lBGSwdTIujvmlB6ksn5tE6qgZ9W+b68/GGlLwt/Bg96SQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=att.net header.s=s1024 header.b=QU1E4cz1; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1697676197; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=Lu9rJoy9YLOnakstNneE3bYcP4o/LKfiVfLoQ2e1i54=; b=JC4I1EmE4Celh39jtWdcp5q4GE8pXXsNz9dC9uSlI2xBsHyOoVPV9IksI28UdfjBlHTFpi hrSd9F4LLIL8pt8Jf3xpyHgMwBixrIUcDEvtg8Llx4TH77v3eDgg63bMlVH//CBxWqrcBk sI6nW7J8ICKmmQjw+NT4GTddiFrA80ToM5Z9J2J5W4Bet//qevyCAC93yM7FyQpVo6jZxC wk4BAVZpuRmHzrkgoAdiW54duauIyE9BTuFwMSop7RLImmRrioJd1lBa+ysy+k+LMu2W8Y JNDKBYTQ/IO8hPBgx+Vx23A4lcRb+nLZ9wr7DyZfKdsjLFkwMS8Kac+l0jQXIQ== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qtH7G-0000Wv-B0; Wed, 18 Oct 2023 20:42:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtH7C-0000Wh-Rp for emacs-orgmode@gnu.org; Wed, 18 Oct 2023 20:42:19 -0400 Received: from sonic308-13.consmr.mail.ne1.yahoo.com ([66.163.187.36]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qtH7A-0002yv-9a for emacs-orgmode@gnu.org; Wed, 18 Oct 2023 20:42:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=att.net; s=s1024; t=1697676132; bh=Lu9rJoy9YLOnakstNneE3bYcP4o/LKfiVfLoQ2e1i54=; h=From:Date:Subject:To:References:From:Subject:Reply-To; b=QU1E4cz1eAU0uUeUE29XcAYIx4giFK1TmzjxRtrO6AeZrQKXbm9aTONeieaQFbBSOOUcJF0QurXBIP4DbgU8zc2c5FVkqtUnmTP91xSkHBCNQ5yTPbtB0UDioddSjinUO7Ytd2Nc8EFZ6TvE0+zp2ENrw23gcDENQlCBssQvC80= X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1697676132; bh=0asLvdu37NP3nm+UzfAxFcnu7mlype5Pe/mjePThfpP=; h=X-Sonic-MF:From:Date:Subject:To:From:Subject; b=U/bq18dzwHfhRaH+n0IeRN+HU/B5mPd+CdH/6rO/5Hg8K7FMzKlO5oYX1vKae/vIzjApU4mC7jJnPlv+G3bsfjxrdW6ocsTb+upbiF5Rhxvx5qQ12hLo9J8jOYkCajQMFHmBsod8Erz1CH27TidnWSN0l+VgZSEXRpJGo+2qNPnVvnyCwldlh469e21jtZ6EXil+S2mAgBqYybSZXtafgmW9pqUbzCTjYbFmc7A9EqYOxNTB80RysI3h372rFUlYFBoYluqx3S0IOZgRqTfUXhVJ8XYeS5F+6fwQZRoJ18RV3jrcktYbEozSktCrhepngWgVELsDcMrDWeaSEWAvSA== X-YMail-OSG: Wnfd9uYVM1k3g25Vxp9eJI7mQhHq9p7EfbfzldNNVzbpoA2FwbDd6PvIjoT3k3B GfW.BoHn3DBYUF8O1crG9GjNr4AnoCrwIoq0W8IZNKMrP64Dczm5_kQzWB1mMiUzqtGpRETKDAgl JQt9ZzMwSYhhfkO5NKso2N0VjKC9H9rFCkBM6PkQi_NdRoW96_55e2rt_KiZ4z_YmKyRbugdaeX7 8BQcQUJiqfa1Jvcy72F_b2BRXoOguCiXc.bzN9ArXI3byu_hFFWmpcyC_BS41BpmmCS0u3xuctlC 8lOnY14hRXfWvKf9cUPweK5Y6MOUtPyuTBZ_BMmYidOjHQzbOxpwkk6ChftKrLM0fglbDVk_ot9M xjrd28S6Q2KfPwVyjkykEO7GcUN9vS3ug8SNK3k0LZLPZjWQHcqYuZKb6b3wo5LfTfWE6jWz1F8d 9GoEr31KHsIOnYGCSMD.7DE5LhAS0ZEVB4bCWzZt5GelxejCZ4fhiIPkjNDkQZS.06wtMLm53Ja8 7G6Ca8RmIHUav5A3Kv0SdNk47vpqwh1M7lSx3DTX6ElKBHbFCV9sgiLuBPwYbzCCOtCmfnejBYKM E7xIsG5FyBMTk1KDCznwJEjbDAa2idL4v2pzZEUpz360A07ZcZ00q2h72Y0WVthD_Jv_OVJ.rdQd 2AljnfEtOaGTY9L7TrWs5I9Msutakxb63XwGkneyB0aCBJwpbyqzgwrTi5HhL2bhYgMorZxJAB4X PDuzpQzdJlJgZRJ9.ZVy7nlGplmaOPlcUPd91f2FO8euMZxiKZrYdqSw1e4_qp.k49MNL8jCDVTX u23AuDH5Rn6UiTmsiOb.TriT6ckeOUOX7J4VB910NbWRrRU9Yglm5YLr6pOAeALoPxNcq1h2yL2f Qivs9JexQuGa_J4jxzw7viO6YB.vVi1fLkBq4Dnye2mtW1P5jNdWwFArokP8dsYeq0KzPtMtrlFz mKgr4ZsUc500uY3BqXW_FOg80xdq8YVCzh95cjqKcL9w8ZEaMUI3X8gBbE8gKZ5XkhfbdNT6G4c6 exIReiJv1H.90ipP_wjTwql3CsvldKT7BLxWBkzyeImCEUiKE_Q4F_akL.YUDYXneAQAh.wz2r1K nnxm9d6CfX8v.3nZwHJeBRPdzrwQhMUN5EnZnWNsX6kF9G2Cnz4JbwfsAW7gJlHklLKzzDmebiXx 27nD_WI2oeUR_7ta1FeV4JieKLffiIwV7O.TG6v9uriUKmIMibQMWTFi1jocOF2jV_jLE1bbw.NE GRRW6f0TVAlBwzZcIvitaL4kf29dxIU16EgH7xXcb3d3QZgVt9rW.ilWZv7UCgUmlwjZt7PRv1Oe lv7jvDm1_aliExmRFgXKF9GaeasgS_3RCQB9Q6gtQOIT_seHs0TnufcgKZ0Aq6eAtc7LiafL7VL0 MujsQ3m7B8.LIzB.uWoeFOY.gbl5.eUYOfa0tRdsuM4GioDog8fpeQpK6FYTacDbstV8P3PvyIGk ypXEjlvK7cKpijyZ2l7qTetunJXnEI2xa0Z3sSuxMedCAfOa0oYVHuzgC6cyOgPxDQ84Px1ZzeNK .mrbIWi5V8vX4laKMoiskHVCgYhHNvjaLjUfkfbXluTy8.qODwyX0YDutLrOz6KNNg3A65bB3HjB SFWMgiHy2YNKTw946n0udDINgTB7W3GKNAvACYuRQD1Bq.cO4BdJaBFLJDPDwZZLnr2u6r.kAPwA 3uKvKSkkxT71wLSkn0pic13qhHp_GUHRsD7CspAsMraCDhBjEb_rpgSc4.RnH33mzFNeMqbWnyNC nbTcj.4bobXfwy0BUrD2xGzghwxob5RhV8Pe4bgfvDCHNwT7z7M_kduivv4iGHt3WcRVuosHsZdZ cApzFP8F6A8M5QKcGMz5lArJaMTZfh2CyJ0d1inbC80nGSB8H0IRXnALUY0WmrXIczjt1DQeDssy geQFijnzPB79Ebu5jki38v8aXiD7QJGRuQCHnAidnQe4LbyA9kMuD.1y1R84moxq5XHs1kIsL23J p4M_2DzH.GHuxyLbF7v85xmbvl5jH.brsIT18G5ARuOSkM9vLH8nnp3dGrs9H6aOPKv294nNxmRs AwvOo7CblHeb.Z6UmU0m9X0IUrblr8wy7sDDe..dpEc3KYmM7FSXJglQvdCbrQqe7_bgZJTLKgUr C4B2KNF4ZhvvzsVbqG7biYrDZbZcjHJp8YU4iexommKqmpoZPycdY_Fm8GMwLwFm63zoCAqbv3kJ s.NqfgJTgft3liPrNc0IRKrLtFtAufe2b X-Sonic-MF: X-Sonic-ID: ed8c3586-c30e-4eaf-8b64-168a827fbc74 Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ne1.yahoo.com with HTTP; Thu, 19 Oct 2023 00:42:12 +0000 Received: by hermes--production-ir2-57dc7b564-q8qbk (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID dc2d2fc0b01249f873ff937bc9e65b48; Thu, 19 Oct 2023 00:42:06 +0000 (UTC) Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2c514cbbe7eso67328201fa.1 for ; Wed, 18 Oct 2023 17:42:06 -0700 (PDT) X-Gm-Message-State: AOJu0Ywp2rHx3EZ1l1vqTqC7LdSwwJPLbI5KIcfl0Qk9F4om5WbHv+XV sialp5jpvl9aifuNDz/GQIKJR+UPPDEQZfNxLH8= X-Google-Smtp-Source: AGHT+IFUeyrEOfh4rTvQRlEC57XUqMR6BdDoHxt0xf4G2dgQOX7atqAthZQPXdEe1lpX1RsJ3uRkATEhqtmtRDvFFU0= X-Received: by 2002:a2e:a781:0:b0:2c5:106f:540f with SMTP id c1-20020a2ea781000000b002c5106f540fmr411709ljf.43.1697676124621; Wed, 18 Oct 2023 17:42:04 -0700 (PDT) MIME-Version: 1.0 From: Jeff Trull Date: Wed, 18 Oct 2023 17:41:53 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: [BUG] emacs-lisp source blocks do not implement :prologue and :epilogue [9.6.9 ( @ /home/jet/.config/emacs/elpa/org-9.6.9/)] To: emacs-orgmode@gnu.org Content-Type: multipart/alternative; boundary="0000000000005a137e06080706e6" References: X-Mailer: WebService/1.1.21863 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: none client-ip=66.163.187.36; envelope-from=edaskel@att.net; helo=sonic308-13.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Scanner: mx1.migadu.com X-Migadu-Spam-Score: -5.68 X-Spam-Score: -5.68 X-Migadu-Queue-Id: D36693E1B1 X-TUID: RjwmSTrM/30t --0000000000005a137e06080706e6 Content-Type: text/plain; charset="UTF-8" The manual page "Environment of a Code Block" describes :prologue and :epilogue header arguments, which are useful for applications like unit tests and boilerplate code. No suggestion is made that these arguments are only available for some languages. In fact, any language that provides its own org-babel-expand-body needs special code to handle these arguments - and emacs-lisp lacks it. It seems to me that either: 1) these arguments should be added to each backend that lacks them (emacs-lisp in particular), or 2) The documentation should indicate that they may not be supported in every language. At the moment I have the following workaround: (advice-add #'org-babel-expand-body:emacs-lisp :around (lambda (oldfn body params) (let ((pro (cdr (assq :prologue params))) (epi (cdr (assq :epilogue params)))) (concat (if pro (concat pro "\n") "") (funcall oldfn body params) (if epi (concat epi "\n") "")))) '((name . pe-advice))) Emacs : GNU Emacs 29.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-07-30 Package: Org mode version 9.6.9 ( @ /home/jet/.config/emacs/elpa/org-9.6.9/) current state: ============== (setq org-link-elisp-confirm-function 'yes-or-no-p org-ditaa-jar-path "/usr/share/ditaa/ditaa.jar" org-bibtex-headline-format-function #[257 "\300 \236A\207" [:title] 3 "\n\n(fn ENTRY)"] org-persist-after-read-hook '(org-element--cache-persist-after-read) org-re-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js@3.6.0" org-export-before-parsing-hook '(org-attach-expand-links) org-cycle-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-archive-hook '(org-attach-archive-delete-maybe) org-ascii-format-drawer-function #[771 " \207" [] 4 "\n\n(fn NAME CONTENTS WIDTH)"] org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-show-empty-lines org-cycle-optimize-window-after-visibility-change org-cycle-display-inline-images) org-latex-listings-options '(("basicstyle" "\\footnotesize\\ttfamily") ("showstringspaces" "false") ("breaklines" "true")) org-persist-before-read-hook '(org-element--cache-persist-before-read) org-mode-hook '(#[0 "\301\211 \207" [imenu-create-index-function org-imenu-get-tree] 2] org-superstar-mode org-tempo-setup (lambda nil (electric-indent-local-mode -1)) #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-fold-show-all append local] 5] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes org-eldoc-load) org-babel-load-languages '((emacs-lisp . t) (dot . t) (ditaa . t) (shell . t)) org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"] org-latex-format-headline-function 'org-latex-format-headline-default-function org-confirm-shell-link-function 'yes-or-no-p org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] outline-isearch-open-invisible-function 'outline-isearch-open-invisible org-latex-classes '(("beamer" "\\documentclass[11pt,aspectratio=169]{beamer}\n \\usenavigationsymbolstemplate{} % no navigation bar\n \\beamertemplateballitem % items have little balls" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) ("article" "\\documentclass[11pt]{article}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}")) ("report" "\\documentclass[11pt]{report}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) ("book" "\\documentclass[11pt]{book}" ("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}") ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}")) ) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-latex-packages-alist '(("" "moresize") ("" "fancyvrb") ("" "inconsolata") ("" "tikz") ("" "color") ("" "listings")) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-confirm-elisp-link-function 'yes-or-no-p org-latex-src-block-backend t org-ditaa-eps-jar-path "/home/jet/.config/emacs/elpa/contrib/scripts/DitaaEps.jar" org-structure-template-alist '(("n" . "notes") ("a" . "export ascii") ("c" . "center") ("C" . "comment") ("e" . "example") ("E" . "export") ("h" . "export html") ("l" . "export latex") ("q" . "quote") ("s" . "src") ("v" . "verse")) org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default org-export-backends '(ascii html icalendar latex md confluence re-reveal) org-confirm-babel-evaluate nil org-fold-core-isearch-open-function 'org-fold--isearch-reveal org-re-reveal-title-slide "

%t

%a

%d

" org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function org-persist-before-write-hook '(org-element--cache-persist-before-write) org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-link-shell-confirm-function 'yes-or-no-p org-babel-pre-tangle-hook '(save-buffer) org-agenda-loop-over-headlines-in-active-region nil org-occur-hook '(org-first-headline-recenter) org-metadown-hook '(org-babel-pop-to-session-maybe) org-link-parameters '(("attachment" :follow org-attach-follow :complete org-attach-complete-link) ("eww" :follow org-eww-open :store org-eww-store-link) ("rmail" :follow org-rmail-open :store org-rmail-store-link) ("mhe" :follow org-mhe-open :store org-mhe-store-link) ("irc" :follow org-irc-visit :store org-irc-store-link :export org-irc-export) ("info" :follow org-info-open :export org-info-export :store org-info-store-link :insert-description org-info-description-as-command) ("gnus" :follow org-gnus-open :store org-gnus-store-link) ("docview" :follow org-docview-open :export org-docview-export :store org-docview-store-link) ("bibtex" :follow org-bibtex-open :store org-bibtex-store-link) ("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete org-bbdb-complete-link :store org-bbdb-store-link) ("w3m" :store org-w3m-store-link) ("doi" :follow org-link-doi-open :export org-link-doi-export) ("id" :follow org-id-open) ("file+sys") ("file+emacs") ("shell" :follow org-link--open-shell) ("news" :follow #[514 "\301\300\302 Q \"\207" ["news" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("mailto" :follow #[514 "\301\300\302 Q \"\207" ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("https" :follow #[514 "\301\300\302 Q \"\207" ["https" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("http" :follow #[514 "\301\300\302 Q \"\207" ["http" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("ftp" :follow #[514 "\301\300\302 Q \"\207" ["ftp" browse-url ":"] 6 "\n\n(fn URL ARG)"]) ("help" :follow org-link--open-help :store org-link--store-help) ("file" :complete org-link-complete-file) ("elisp" :follow org-link--open-elisp)) org-html-format-headline-function 'org-html-format-headline-default-function org-metaup-hook '(org-babel-load-in-session-maybe) org-tab-before-tab-emulation-hook '(org-tempo-complete-tag) ) --0000000000005a137e06080706e6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The manual page "Environment of a Code Block" de= scribes :prologue and
:epilogue header arguments, which are useful for a= pplications like unit
tests and boilerplate code. No suggestion is made = that these arguments
are only available for some languages.

In fa= ct, any language that provides its own org-babel-expand-body needs
speci= al code to handle these arguments - and emacs-lisp lacks it.

It seem= s to me that either:

1) these arguments should be added to each back= end that lacks them
(emacs-lisp in particular), or
2) The documentati= on should indicate that they may not be supported in
every language.
=
At the moment I have the following workaround:

(advice-add #'= ;org-babel-expand-body:emacs-lisp :around
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 (lambda (oldfn body params)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 (let ((pro (cdr (assq :prologue params)))
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (epi (cdr (a= ssq :epilogue params))))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 (concat
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(if pro (concat pro "\n") "")
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(funcall oldfn body par= ams)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(if e= pi (concat epi "\n") ""))))
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 '((name . pe-advice)))


Emacs =C2=A0: GNU E= macs 29.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo versio= n 1.16.0)
=C2=A0of 2023-07-30
Package: Org mode version 9.6.9 ( @ /ho= me/jet/.config/emacs/elpa/org-9.6.9/)

current state:
=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
(setq
=C2=A0org-link-elisp-confirm-fun= ction 'yes-or-no-p
=C2=A0org-ditaa-jar-path "/usr/share/ditaa/d= itaa.jar"
=C2=A0org-bibtex-headline-format-function #[257 "\30= 0 \236A\207" [:title] 3 "\n\n(fn ENTRY)"]
=C2=A0org-persi= st-after-read-hook '(org-element--cache-persist-after-read)
=C2=A0or= g-re-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js@3.6.0"
=C2=A0org-ex= port-before-parsing-hook '(org-attach-expand-links)
=C2=A0org-cycle-= tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-ar= g-expand)
=C2=A0org-archive-hook '(org-attach-archive-delete-maybe)<= br>=C2=A0org-ascii-format-drawer-function #[771 " \207" [] 4 &quo= t;\n\n(fn NAME CONTENTS WIDTH)"]
=C2=A0org-cycle-hook '(org-cyc= le-hide-archived-subtrees org-cycle-show-empty-lines org-cycle-optimize-win= dow-after-visibility-change
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 org-cycle-display-inline-images)
=C2=A0org-latex-li= stings-options '(("basicstyle" "\\footnotesize\\ttfamily= ") ("showstringspaces" "false") ("breaklines&= quot; "true"))
=C2=A0org-persist-before-read-hook '(org-el= ement--cache-persist-before-read)
=C2=A0org-mode-hook '(#[0 "\3= 01\211 \207" [imenu-create-index-function org-imenu-get-tree] 2] org-s= uperstar-mode org-tempo-setup
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0(lambda nil (electric-indent-local-mode -1))
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0#[0 "\300\301\3= 02\303\304$\207" [add-hook change-major-mode-hook org-fold-show-all ap= pend local] 5]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0#[0 "\300\301\302\303\304$\207" [add-hook change-major-mode= -hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0org-babel= -hide-all-hashes org-eldoc-load)
=C2=A0org-babel-load-languages '((e= macs-lisp . t) (dot . t) (ditaa . t) (shell . t))
=C2=A0org-latex-format= -drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"= ;]
=C2=A0org-latex-format-headline-function 'org-latex-format-headli= ne-default-function
=C2=A0org-confirm-shell-link-function 'yes-or-no= -p
=C2=A0org-html-format-drawer-function #[514 "\207" [] 3 &qu= ot;\n\n(fn NAME CONTENTS)"]
=C2=A0outline-isearch-open-invisible-fu= nction 'outline-isearch-open-invisible
=C2=A0org-latex-classes '= (("beamer"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 "\\documentclass[11pt,aspectratio=3D169]{b= eamer}\n =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\\us= enavigationsymbolstemplate{} % no navigation bar\n =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0\\beamertemplateballitem =C2=A0 =C2= =A0 =C2=A0 =C2=A0 % items have little balls"
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ("\\section{%s= }" . "\\section*{%s}") ("\\subsection{%s}" . "= ;\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsub= section*{%s}"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0("article" "\\documentclass[11pt]= {article}" ("\\section{%s}" . "\\section*{%s}") (&= quot;\\subsection{%s}" . "\\subsection*{%s}")
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ("\= \subsubsection{%s}" . "\\subsubsection*{%s}") ("\\parag= raph{%s}" . "\\paragraph*{%s}")
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ("\\subparagraph{= %s}" . "\\subparagraph*{%s}"))
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("report" &qu= ot;\\documentclass[11pt]{report}" ("\\part{%s}" . "\\pa= rt*{%s}") ("\\chapter{%s}" . "\\chapter*{%s}")
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 ("\\section{%s}" . "\\section*{%s}") ("\\subse= ction{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}= " . "\\subsubsection*{%s}"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("book" "\\d= ocumentclass[11pt]{book}" ("\\part{%s}" . "\\part*{%s}&= quot;) ("\\chapter{%s}" . "\\chapter*{%s}")
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (&quo= t;\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}= " . "\\subsection*{%s}") ("\\subsubsection{%s}" . = "\\subsubsection*{%s}"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0)
=C2=A0org-agenda-before-write= -hook '(org-agenda-add-entry-text)
=C2=A0org-latex-packages-alist &#= 39;(("" "moresize") ("" "fancyvrb")= ("" "inconsolata") ("" "tikz") (&q= uot;" "color") ("" "listings"))
=C2= =A0org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode= -configure-edit-buffer)
=C2=A0org-confirm-elisp-link-function 'yes-o= r-no-p
=C2=A0org-latex-src-block-backend t
=C2=A0org-ditaa-eps-jar-pa= th "/home/jet/.config/emacs/elpa/contrib/scripts/DitaaEps.jar"=C2=A0org-structure-template-alist '(("n" . "notes"= ;) ("a" . "export ascii") ("c" . "center= ") ("C" . "comment") ("e" . "exampl= e") ("E" . "export")
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 ("h" . "export html") ("l" . &q= uot;export latex") ("q" . "quote") ("s" = . "src") ("v" . "verse"))
=C2=A0org-speed-= command-hook '(org-speed-command-activate org-babel-speed-command-activ= ate)
=C2=A0org-html-format-inlinetask-function 'org-html-format-inli= netask-default-function
=C2=A0org-ascii-format-inlinetask-function '= org-ascii-format-inlinetask-default
=C2=A0org-export-backends '(asci= i html icalendar latex md confluence re-reveal)
=C2=A0org-confirm-babel-= evaluate nil
=C2=A0org-fold-core-isearch-open-function 'org-fold--is= earch-reveal
=C2=A0org-re-reveal-title-slide "<h2>%t</h2&g= t;<h2>%a</h2><h2>%d</h2>"
=C2=A0org-latex-f= ormat-inlinetask-function 'org-latex-format-inlinetask-default-function=
=C2=A0org-persist-before-write-hook '(org-element--cache-persist-be= fore-write)
=C2=A0org-tab-first-hook '(org-babel-hide-result-toggle-= maybe org-babel-header-arg-expand)
=C2=A0org-link-shell-confirm-function= 'yes-or-no-p
=C2=A0org-babel-pre-tangle-hook '(save-buffer)
= =C2=A0org-agenda-loop-over-headlines-in-active-region nil
=C2=A0org-occu= r-hook '(org-first-headline-recenter)
=C2=A0org-metadown-hook '(= org-babel-pop-to-session-maybe)
=C2=A0org-link-parameters '(("a= ttachment" :follow org-attach-follow :complete org-attach-complete-lin= k) ("eww" :follow org-eww-open :store org-eww-store-link)
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0("rmail" :follow org-rmail-open :store org-rmail-store-link= ) ("mhe" :follow org-mhe-open :store org-mhe-store-link)
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0("irc" :follow org-irc-visit :store org-irc-store-link :exp= ort org-irc-export)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("info" :follow org-info-open :exp= ort org-info-export :store org-info-store-link :insert-description
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 org-info-description-as-command)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("gnus" :foll= ow org-gnus-open :store org-gnus-store-link)
=C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("docview"= ; :follow org-docview-open :export org-docview-export :store org-docview-st= ore-link)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0("bibtex" :follow org-bibtex-open :store org= -bibtex-store-link)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("bbdb" :follow org-bbdb-open :exp= ort org-bbdb-export :complete org-bbdb-complete-link :store org-bbdb-store-= link)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0("w3m" :store org-w3m-store-link) ("doi&quo= t; :follow org-link-doi-open :export org-link-doi-export) ("id" := follow org-id-open)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("file+sys") ("file+emacs&quo= t;) ("shell" :follow org-link--open-shell)
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("ne= ws" :follow #[514 "\301\300\302 Q \"\207" ["news&q= uot; browse-url ":"] 6 "\n\n(fn URL ARG)"])
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0("mailto" :follow #[514 "\301\300\302 Q \"\207"= ["mailto" browse-url ":"] 6 "\n\n(fn URL ARG)&quo= t;])
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0("https" :follow #[514 "\301\300\302 Q \&qu= ot;\207" ["https" browse-url ":"] 6 "\n\n(fn = URL ARG)"])
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0("http" :follow #[514 "\301\300\= 302 Q \"\207" ["http" browse-url ":"] 6 "= ;\n\n(fn URL ARG)"])
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("ftp" :follow #[514 "= \301\300\302 Q \"\207" ["ftp" browse-url ":"]= 6 "\n\n(fn URL ARG)"])
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("help" :follow org-= link--open-help :store org-link--store-help) ("file" :complete or= g-link-complete-file)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0("elisp" :follow org-link--open= -elisp))
=C2=A0org-html-format-headline-function 'org-html-format-he= adline-default-function
=C2=A0org-metaup-hook '(org-babel-load-in-se= ssion-maybe)
=C2=A0org-tab-before-tab-emulation-hook '(org-tempo-com= plete-tag)
=C2=A0)
--0000000000005a137e06080706e6--