emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master d0fc4f3: * lisp/mail/emacsbug.el (report-emacs-bug-


From: Glenn Morris
Subject: [Emacs-diffs] master d0fc4f3: * lisp/mail/emacsbug.el (report-emacs-bug--os-description):
Date: Tue, 28 Aug 2018 20:37:02 -0400 (EDT)

branch: master
commit d0fc4f3f578ac33b4e11adea4a2281d2b849840e
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    * lisp/mail/emacsbug.el (report-emacs-bug--os-description):
    Add MS Windows.
---
 lisp/mail/emacsbug.el | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index d4caeed..43ecddf 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -116,6 +116,9 @@ This requires either the macOS \"open\" command, or the 
freedesktop
                           (concat "mailto:"; to)))
        (error "Subject, To or body not found")))))
 
+(defvar report-emacs-bug--os-description nil
+  "Cached value of operating system description.")
+
 (defun report-emacs-bug--os-description ()
   "Return a string describing the operating system, or nil."
   (cond ((eq system-type 'darwin)
@@ -129,8 +132,25 @@ This requires either the macOS \"open\" command, or the 
freedesktop
                                         nil t)
                      (setq os (concat os " " (match-string 1)))))))
            os))
+        ((eq system-type 'windows-nt)
+         (or report-emacs-bug--os-description
+             (setq
+              report-emacs-bug--os-description
+              (let (os)
+                (with-temp-buffer
+                  ;; Seems like this command can be slow, because it
+                  ;; unconditionally queries a bunch of other stuff
+                  ;; we don't care about.
+                  (when (eq 0 (ignore-errors
+                                (call-process "systeminfo" nil '(t nil) nil)))
+                    (dolist (s '("OS Name" "OS Version"))
+                      (goto-char (point-min))
+                      (if (re-search-forward
+                           (format "^%s\\s-*:\\s-+\\(.*\\)$" s)
+                           nil t)
+                          (setq os (concat os " " (match-string 1)))))))
+                os))))
         ;; TODO include other branches here.
-        ;; MS Windows: systeminfo ?
         ;; Cygwin, *BSD, etc: ?
         (t
          (or (let ((file "/etc/os-release"))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]