diff options
Diffstat (limited to 'lisp/url/url-domsuf.el')
-rw-r--r-- | lisp/url/url-domsuf.el | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/lisp/url/url-domsuf.el b/lisp/url/url-domsuf.el index 74d46f1c037..671885e418f 100644 --- a/lisp/url/url-domsuf.el +++ b/lisp/url/url-domsuf.el @@ -30,14 +30,26 @@ (defvar url-domsuf-domains nil) +(defun url-domsuf--public-suffix-file () + "Look for and return a file name for a recent \"public_suffix_list.dat\". +Emacs ships with a copy of this file, but some systems might have +a newer version available. Look for it in some standard +locations, and if a newer file was found, then return that." + (car (sort + (seq-filter + #'file-readable-p + (list (expand-file-name "publicsuffix.txt.gz" data-directory) + (expand-file-name "publicsuffix.txt" data-directory) + ;; Debian and Fedora + "/usr/share/publicsuffix/public_suffix_list.dat" + ;; FreeBSD port + "/usr/local/share/public_suffix_list/public_suffix_list.dat")) + #'file-newer-than-file-p))) + (defun url-domsuf-parse-file () (with-temp-buffer (with-auto-compression-mode - (insert-file-contents - (let* ((suffixfile (expand-file-name "publicsuffix.txt" data-directory)) - (compressed-file (concat suffixfile ".gz"))) - (or (and (file-readable-p compressed-file) compressed-file) - suffixfile)))) + (insert-file-contents (url-domsuf--public-suffix-file))) (let ((domains nil) domain exception) (while (not (eobp)) |