url-privacy.el 2.27 KB
Newer Older
Stefan Monnier's avatar
Stefan Monnier committed
1
;;; url-privacy.el --- Global history tracking for URL package
Lars Hansen's avatar
Lars Hansen committed
2

Paul Eggert's avatar
Paul Eggert committed
3
;; Copyright (C) 1996-1999, 2004-2017 Free Software Foundation, Inc.
Lars Hansen's avatar
Lars Hansen committed
4

Stefan Monnier's avatar
Stefan Monnier committed
5 6
;; Keywords: comm, data, processes, hypermedia

Lars Hansen's avatar
Lars Hansen committed
7 8
;; This file is part of GNU Emacs.

9
;; GNU Emacs is free software: you can redistribute it and/or modify
Lars Hansen's avatar
Lars Hansen committed
10
;; it under the terms of the GNU General Public License as published by
11 12
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
Lars Hansen's avatar
Lars Hansen committed
13 14 15 16 17 18 19

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
20
;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
Lars Hansen's avatar
Lars Hansen committed
21 22

;;; Code:
Stefan Monnier's avatar
Stefan Monnier committed
23 24 25

(require 'url-vars)

26 27
(defun url-device-type (&optional device)
  (if (fboundp 'device-type)
Glenn Morris's avatar
Glenn Morris committed
28
      (device-type device)              ; XEmacs
29
    (or window-system 'tty)))
Stefan Monnier's avatar
Stefan Monnier committed
30 31 32

;;;###autoload
(defun url-setup-privacy-info ()
33
  "Setup variables that expose info about you and your system."
Stefan Monnier's avatar
Stefan Monnier committed
34 35 36 37 38 39 40 41 42 43 44 45 46
  (interactive)
  (setq url-system-type
	(cond
	 ((or (eq url-privacy-level 'paranoid)
	      (and (listp url-privacy-level)
		   (memq 'os url-privacy-level)))
	  nil)
	 ;; First, we handle the inseparable OS/Windowing system
	 ;; combinations
	 ((eq system-type 'windows-nt) "Windows-NT; 32bit")
	 ((eq system-type 'ms-dos) "MS-DOS; 32bit")
	 ((memq (url-device-type) '(win32 w32)) "Windows; 32bit")
	 (t
47 48 49 50 51
	  (pcase (url-device-type)
	    (`x "X11")
	    (`ns "OpenStep")
	    (`tty "TTY")
	    (_ nil)))))
Stefan Monnier's avatar
Stefan Monnier committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

  (setq url-personal-mail-address (or url-personal-mail-address
				      user-mail-address
				      (format "%s@%s"  (user-real-login-name)
					      (system-name))))

  (if (or (memq url-privacy-level '(paranoid high))
	  (and (listp url-privacy-level)
	       (memq 'email url-privacy-level)))
      (setq url-personal-mail-address nil))

  (setq url-os-type
	(cond
	 ((or (eq url-privacy-level 'paranoid)
	      (and (listp url-privacy-level)
		   (memq 'os url-privacy-level)))
	  nil)
69 70
	 ((boundp 'system-configuration) system-configuration)
	 ((boundp 'system-type) (symbol-name system-type))
Stefan Monnier's avatar
Stefan Monnier committed
71 72 73
	 (t nil))))

(provide 'url-privacy)
Miles Bader's avatar
Miles Bader committed
74

Lars Hansen's avatar
Lars Hansen committed
75
;;; url-privacy.el ends here