]> git.eshelyaron.com Git - emacs.git/commitdiff
New function xdg-state-home
authorStefan Kangas <stefan@marxist.se>
Mon, 25 Oct 2021 05:51:02 +0000 (07:51 +0200)
committerStefan Kangas <stefan@marxist.se>
Mon, 25 Oct 2021 05:56:34 +0000 (07:56 +0200)
* lisp/xdg.el (xdg-state-home): New function.  This returns
$XDG_STATE_HOME according to the XDG Base Directory Specification
version 0.8 (08th May 2021).

etc/NEWS
lisp/xdg.el

index 73f9b2ae60a9ee76654fd8401b05a6970352db11..f6d36f1e914b017e2a94405a248c900f4a6b0eae 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -296,6 +296,14 @@ Use 'exif-parse-file' and 'exif-field' instead.
 \f
 * Lisp Changes in Emacs 29.1
 
+** XDG support
+
+*** New function 'xdg-state-home' returns $XDG_STATE_HOME.
+This new location, introduced in the XDG Base Directory Specification
+version 0.8 (8th May 2021), "contains state data that should persist
+between (application) restarts, but that is not important or portable
+enough to the user that it should be stored in $XDG_DATA_HOME".
+
 +++
 ** New macro 'with-delayed-message'.
 This macro is like 'progn', but will output the specified message if
index 1f9fa6795e0efb984c82719be1130bcd0feccb07..75c8bce37ea1e6a068f911b2a98b85a766970c9f 100644 (file)
   "Return the base directory for user specific data files."
   (xdg--dir-home "XDG_DATA_HOME" "~/.local/share"))
 
+(defun xdg-state-home ()
+  "Return the base directory for user-specific state data.
+
+According to the XDG Base Directory Specification version
+0.8 (8th May 2021):
+
+  \"The $XDG_STATE_HOME contains state data that should persist
+  between (application) restarts, but that is not important or
+  portable enough to the user that it should be stored in
+  $XDG_DATA_HOME.  It may contain:
+
+  * actions history (logs, history, recently used files, …)
+
+  * current state of the application that can be reused on a
+    restart (view, layout, open files, undo history, …)\""
+  (xdg--dir-home "XDG_STATE_HOME" "~/.local/state"))
+
 (defun xdg-runtime-dir ()
   "Return the value of $XDG_RUNTIME_DIR."
   (getenv "XDG_RUNTIME_DIR"))