unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows
@ 2023-03-25 11:56 lux
  2023-03-25 13:25 ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: lux @ 2023-03-25 11:56 UTC (permalink / raw)
  To: 62435


[-- Attachment #1.1: Type: text/plain, Size: 130 bytes --]

The eww--download-directory hardcodes the download path, so it does not
work on MS-Windows, I fixed it, and tested on MS-Windows.

[-- Attachment #1.2: Type: text/html, Size: 136 bytes --]

[-- Attachment #2: 0001-Fix-eww-download-directory-on-Windows.patch --]
[-- Type: application/octet-stream, Size: 1610 bytes --]

From b4c5ed1d8fee7b69a079ee883344bf483faf7a52 Mon Sep 17 00:00:00 2001
From: Xi Lu <lx@shellcodes.org>
Date: Sat, 25 Mar 2023 14:44:35 +0800
Subject: [PATCH] Fix eww--download-directory on Windows.

* lisp/net/eww.el: Add get the download directory on MS-Windows.
---
 lisp/net/eww.el | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 859a9b44bcb..ac3af4677b5 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -66,14 +66,17 @@ eww-use-browse-url
 
 (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
+If ~/Downloads/ or %USERPROFILE% on Windows 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/")
-      (when-let ((dir (xdg-user-dir "DOWNLOAD")))
-        (file-name-as-directory dir))
-      "~/Downloads/"))
+  (let ((download-dir (if (eq system-type 'windows-nt)
+                          (concat (getenv "USERPROFILE") "\\Downloads\\")
+                        (concat (getenv "HOME") "/Downloads/"))))
+    (or (and (file-exists-p download-dir)
+             download-dir)
+        (when-let ((dir (xdg-user-dir "DOWNLOAD")))
+          (file-name-as-directory dir))
+        download-dir)))
 
 (defcustom eww-download-directory 'eww--download-directory
   "Directory where files will downloaded.
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows
  2023-03-25 11:56 bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows lux
@ 2023-03-25 13:25 ` Eli Zaretskii
  2023-03-25 13:42   ` lux
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-03-25 13:25 UTC (permalink / raw)
  To: lux; +Cc: 62435

> From: "lux" <lx@shellcodes.org>
> Date: Sat, 25 Mar 2023 19:56:43 +0800
> 
> The eww--download-directory hardcodes the download path, so it does not
> work on MS-Windows, I fixed it, and tested on MS-Windows.

Thanks, but this isn't the right fix.  The code does want to honor the
user's "Downloads" subdirectory, even on Windows.  In addition,
USERPROFILE only works on latest Windows versions.

I think the right fix here is to make this directory a defcustom, and
leave its default value at "~/Downloads" on all systems.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows
  2023-03-25 13:25 ` Eli Zaretskii
@ 2023-03-25 13:42   ` lux
  2023-03-25 14:05     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: lux @ 2023-03-25 13:42 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62435

[-- Attachment #1: Type: text/plain, Size: 230 bytes --]

On Sat, 2023-03-25 at 16:25 +0300, Eli Zaretskii wrote:
> 
> 
> I think the right fix here is to make this directory a defcustom, and
> leave its default value at "~/Downloads" on all systems.
> 

Thank you, I changed it.

[-- Attachment #2: 0001-Add-eww-default-download-directory.patch --]
[-- Type: text/x-patch, Size: 1427 bytes --]

From 6496142bf6b1e558ac4fbafa7b977fbfb24d2237 Mon Sep 17 00:00:00 2001
From: Xi Lu <lx@shellcodes.org>
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 | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 859a9b44bcb..8a511ecf39e 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -64,16 +64,22 @@ 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 "29.0"
+  :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/")
+  (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


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows
  2023-03-25 13:42   ` lux
@ 2023-03-25 14:05     ` Eli Zaretskii
  2023-03-25 14:17       ` lux
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2023-03-25 14:05 UTC (permalink / raw)
  To: lux; +Cc: 62435

> From: lux <lx@shellcodes.org>
> Cc: 62435@debbugs.gnu.org
> 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.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows
  2023-03-25 14:05     ` Eli Zaretskii
@ 2023-03-25 14:17       ` lux
  2023-03-26 11:59         ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: lux @ 2023-03-25 14:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 62435

[-- Attachment #1: Type: text/plain, Size: 1182 bytes --]

On Sat, 2023-03-25 at 17:05 +0300, Eli Zaretskii wrote:
> > From: lux <lx@shellcodes.org>
> > Cc: 62435@debbugs.gnu.org
> > 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.

[-- Attachment #2: 0001-Add-eww-default-download-directory.patch --]
[-- Type: text/x-patch, Size: 1654 bytes --]

From 3eb370725605b4e66542195b5464c23a891f93c6 Mon Sep 17 00:00:00 2001
From: Xi Lu <lx@shellcodes.org>
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


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows
  2023-03-25 14:17       ` lux
@ 2023-03-26 11:59         ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2023-03-26 11:59 UTC (permalink / raw)
  To: lux; +Cc: 62435-done

> From: lux <lx@shellcodes.org>
> Cc: 62435@debbugs.gnu.org
> Date: Sat, 25 Mar 2023 22:17:01 +0800
> 
> > Please update the doc string as well.
> > 
> > 
> Done, please review, thank you.

Thanks, installed on the emacs-29 branch, and closing the bug.





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-03-26 11:59 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-25 11:56 bug#62435: [PATCH] 29.0 Fix eww--download-directory on MS-Windows lux
2023-03-25 13:25 ` Eli Zaretskii
2023-03-25 13:42   ` lux
2023-03-25 14:05     ` Eli Zaretskii
2023-03-25 14:17       ` lux
2023-03-26 11:59         ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).