Subject: bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows

From: lux <[email-masked]>
Date: Sat, 25 Mar 2023 22:17:01 +0800

On Sat, 2023-03-25 at 17:05 +0300, Eli Zaretskii wrote:
> > From: lux <[email-masked]>
> > Cc: [email-masked]
> > Date: Sat, 25 Mar 2023 21:42:44 +0800
> > 
> > 
> > +(defcustom eww-default-download-directory "~/Downloads/"
> > +  "The default directory where downloaded files will be saved."
> > +  :version "29.0"
>               ^^^^^^
> This should be "30.1".
> 
> >  (defun eww--download-directory ()
> >    "Return the name of the download directory.
> >  If ~/Downloads/ exists, that will be used, and if not, the
> >  DOWNLOAD XDG user directory will be returned.  If that's
> >  undefined, ~/Downloads/ is returned anyway."
> > -  (or (and (file-exists-p "~/Downloads/")
> > -           "~/Downloads/")
> > +  (or (and (file-exists-p eww-default-download-directory)
> > +           eww-default-download-directory)
> >        (when-let ((dir (xdg-user-dir "DOWNLOAD")))
> >          (file-name-as-directory dir))
> > -      "~/Downloads/"))
> > +      eww-default-download-directory))
> 
> Please update the doc string as well.
> 
> 
Done, please review, thank you.
From 3eb370725605b4e66542195b5464c23a891f93c6 Mon Sep 17 00:00:00 2001
From: Xi Lu <[email-masked]>
Date: Sat, 25 Mar 2023 21:38:48 +0800
Subject: [PATCH] Add `eww-default-download-directory'.

* lisp/net/eww.el: Add variable `eww-default-download-directory'.
---
 lisp/net/eww.el | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 859a9b44bcb..9552138bb6e 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -64,16 +64,21 @@ eww-use-browse-url
   :version "28.1"
   :type 'regexp)
 
+(defcustom eww-default-download-directory "~/Downloads/"
+  "The default directory where downloaded files will be saved."
+  :version "30.1"
+  :group 'eww
+  :type 'string)
+
 (defun eww--download-directory ()
-  "Return the name of the download directory.
-If ~/Downloads/ exists, that will be used, and if not, the
-DOWNLOAD XDG user directory will be returned.  If that's
-undefined, ~/Downloads/ is returned anyway."
-  (or (and (file-exists-p "~/Downloads/")
-           "~/Downloads/")
+  "Return the name of the download directory based on the value of
+`eww-default-download-directory'. If the specified directory exists, it
+ will be used. Otherwise, the DOWNLOAD XDG user directory will be returned."
+  (or (and (file-exists-p eww-default-download-directory)
+           eww-default-download-directory)
       (when-let ((dir (xdg-user-dir "DOWNLOAD")))
         (file-name-as-directory dir))
-      "~/Downloads/"))
+      eww-default-download-directory))
 
 (defcustom eww-download-directory 'eww--download-directory
   "Directory where files will downloaded.
-- 
2.39.2