#+findex: org-block
For more complex date specifications, Org mode supports using the
- special expression diary entries implemented in the Emacs Calendar
- package[fn:20]. For example, with optional time:
+ special expression diary entries implemented in the
+ [[info:emacs#Special Diary Entries][Emacs Calendar package]][fn:20].
+ For example, with optional time:
#+begin_example
,* 22:00-23:00 The nerd meeting on every 2nd Thursday of the month
% Reference Card for Org Mode
-\def\orgversionnumber{9.6.3}
+\def\orgversionnumber{9.6.4}
\def\versionyear{2023} % latest update
\input emacsver.tex
:version "24.1"
:type 'function)
-(defcustom org-babel-tangle-default-file-mode #o544
+(defcustom org-babel-tangle-default-file-mode #o644
"The default mode used for tangled files, as an integer.
-The default value 356 correspands to the octal #o544, which is
+The default value 420 correspands to the octal #o644, which is
read-write permissions for the user, read-only for everyone else."
:group 'org-babel-tangle
:package-version '(Org . "9.6")
;; Match regexp taken from `file-modes-symbolic-to-number'.
(file-modes-symbolic-to-number mode org-babel-tangle-default-file-mode))
((string-match-p "^[r-][w-][xs-][r-][w-][xs-][r-][w-][x-]$" mode)
- (file-modes-symbolic-to-number (concat "u=" (substring mode 0 3)
- ",g=" (substring mode 3 6)
- ",o=" (substring mode 6 9))
+ (file-modes-symbolic-to-number (concat "u=" (delete ?- (substring mode 0 3))
+ ",g=" (delete ?- (substring mode 3 6))
+ ",o=" (delete ?- (substring mode 6 9)))
0))
(t (error "File mode %S not recognized as a valid format. See `org-babel-interpret-file-mode'." mode))))
(unless (string= org-agenda-todo-keyword-format "")
;; Remove `display' property as the icon could leak
;; on the white space.
- (org-add-props " " (org-plist-delete (text-properties-at 0 x)
- 'display)))
+ (apply #'propertize " " (org-plist-delete (text-properties-at 0 x) 'display)))
(substring x (match-end 3)))))))
x)))
"Duration, as a time value, of the pause between synchronizations.
See `org-element-cache-sync-duration' for more information.")
-(defvar org-element--cache-self-verify t
+(defvar org-element--cache-self-verify nil
"Activate extra consistency checks for the cache.
This may cause serious performance degradation depending on the value
;;; Org version verification.
+(defconst org--built-in-p nil
+ "When non-nil, assume that Org is a part of Emacs source.
+For internal use only. See Emacs bug #62762.
+This variable is only supposed to be changed by Emacs build scripts.")
(defmacro org-assert-version ()
"Assert compile time and runtime version match."
;; We intentionally use a more permissive `org-release' instead of
;; `org-assert-version' calls would fail using strict
;; `org-git-version' check because the generated Org version strings
;; will not match.
- `(unless (equal (org-release) ,(org-release))
+ `(unless (or org--built-in-p (equal (org-release) ,(org-release)))
(warn "Org version mismatch. Org loading aborted.
This warning usually appears when a built-in Org version is loaded
prior to the more recent Org version.
(self-insert-command N))
(setq org-table-may-need-update t)
(let* (orgtbl-mode
- a
(cmd (or (key-binding
(or (and (listp function-key-map)
- (setq a (assoc last-input-event function-key-map))
- (cdr a))
- (vector last-input-event)))
+ (cdr (assoc last-command-event function-key-map)))
+ (vector last-command-event)))
'self-insert-command)))
(call-interactively cmd)
(if (and org-self-insert-cluster-for-undo
(defun org-release ()
"The release version of Org.
Inserted by installing Org mode or when a release is made."
- (let ((org-release "9.6.3"))
+ (let ((org-release "9.6.4"))
org-release))
;;;###autoload
(defun org-git-version ()
"The Git version of Org mode.
Inserted by installing Org or when a release is made."
- (let ((org-git-version "release_9.6.3-2-gf2949d"))
+ (let ((org-git-version "release_9.6.4-2-g0f6ae7"))
org-git-version))
\f
(provide 'org-version)
;; URL: https://orgmode.org
;; Package-Requires: ((emacs "26.1"))
-;; Version: 9.6.3
+;; Version: 9.6.4
;; This file is part of GNU Emacs.
;;
(replace-match "0" t nil nil 1)))))
(defvar org-state)
-(defvar org-blocked-by-checkboxes)
+;; FIXME: We should refactor this and similar dynamically scoped blocker flags.
+(defvar org-blocked-by-checkboxes nil) ; dynamically scoped
(defun org-todo (&optional arg)
"Change the TODO state of an item.
(replace-regexp-in-string
"--\\|[\\{}$%&_#~^]"
(lambda (m)
- (cond ((equal m "--") "-{}-")
+ (cond ((equal m "--") "-{}-{}")
((equal m "\\") "\\textbackslash{}")
((equal m "~") "\\textasciitilde{}")
((equal m "^") "\\textasciicircum{}")
;; not be desired in scripts that do not separate words with
;; spaces (for example, Han script). `fill-region' is able to
;; handle such situations.
- ;; FIXME: The unnecessary spaced may still remain when a newline
+ ;; FIXME: The unnecessary spacing may still remain when a newline
;; is at a boundary between Org objects (e.g. italics markup
;; followed by newline).
(setq output
(with-temp-buffer
- (insert output)
(save-match-data
(let ((leading (and (string-match (rx bos (1+ blank)) output)
(match-string 0 output)))
(trailing (and (string-match (rx (1+ blank) eos) output)
(match-string 0 output))))
+ (insert
+ (substring
+ output
+ (length leading)
+ (pcase (length trailing)
+ (0 nil)
+ (n (- n)))))
;; Unfill, retaining leading/trailing space.
(let ((fill-column most-positive-fixnum))
(fill-region (point-min) (point-max)))