]> git.eshelyaron.com Git - emacs.git/commitdiff
Update Android port
authorPo Lu <luangruo@yahoo.com>
Thu, 17 Aug 2023 00:45:57 +0000 (08:45 +0800)
committerPo Lu <luangruo@yahoo.com>
Thu, 17 Aug 2023 00:45:57 +0000 (08:45 +0800)
* configure.ac (emacs_cv_tputs_lib): Only circumvent termcap if
Android windowing support is enabled.  (bug#65340)

* etc/PROBLEMS: Fix typo in section recouting problems with the
Anonymous Pro font.

* lisp/subr.el (event-start, event-end): Return the mouse
position list tied to touchscreen-begin and end events.
Reported by Stefan Monnier <monnier@iro.umontreal.ca>.

* lisp/version.el (emacs-build-system, emacs-build-time)
(emacs-repository-get-version, emacs-repository-get-branch):
Bypass Android specific code on non-GUI builds running on
Android.  (bug#65340)

* lisp/wid-edit.el (widget-event-point): Remove now redundant
code.

configure.ac
etc/PROBLEMS
lisp/subr.el
lisp/version.el
lisp/wid-edit.el

index 8120935978d9ce0a65039a0cda6e6f9e1014ff74..4cf6751ab8296c642a77796422b3969eff50bc58 100644 (file)
@@ -5992,7 +5992,7 @@ AC_DEFUN([tputs_link_source], [
 # than to expect to find it in ncurses.
 # Also we need tputs and friends to be able to build at all.
 AC_CACHE_CHECK([for library containing tputs], [emacs_cv_tputs_lib],
-[if test "${opsys}" = "mingw32" || test "$opsys" = "android"; then
+[if test "${opsys}" = "mingw32" || test x"$REALLY_ANDROID" = "xyes"; then
   emacs_cv_tputs_lib='none required'
 else
   # curses precedes termcap because of AIX (Bug#9736#35) and OpenIndiana.
index 6a4c8cdb34ca263a55c417b36c57e91c8ffe9e63..6fe0b93f538e5cf480586cfb28f3b8807641755f 100644 (file)
@@ -3400,7 +3400,7 @@ results that are easier to read.
 
 ** The "Anonymous Pro" font displays incorrectly.
 
-Glyphs instruction code within the Anonymous Pro font relies on
+Glyph instruction code within the Anonymous Pro font relies on
 undocumented features of the Microsoft TrueType font scaler, namely
 that the scaler always resets the "projection" and "freedom" vector
 interpreter control registers after the execution of the font
index 616f0a8dfb667003acd35b2c08ea1b2b2d8cf1bf..f6bf7988e9d5995b238e9f1373056ac22b2db4f7 100644 (file)
@@ -1651,8 +1651,9 @@ in the current Emacs session, then this function may return nil."
 
 (defun event-start (event)
   "Return the starting position of EVENT.
-EVENT should be a mouse click, drag, or key press event.  If
-EVENT is nil, the value of `posn-at-point' is used instead.
+EVENT should be a mouse click, drag, touch screen, or key press
+event.  If EVENT is nil, the value of `posn-at-point' is used
+instead.
 
 The following accessor functions are used to access the elements
 of the position:
@@ -1675,27 +1676,32 @@ nil or (STRING . POSITION)'.
 
 For more information, see Info node `(elisp)Click Events'."
   (declare (side-effect-free t))
-  (or (and (consp event)
-           ;; Ignore touchscreen events.  They store the posn in a
-           ;; different format, and can have multiple posns.
-           (not (memq (car event) '(touchscreen-begin
-                                    touchscreen-update
-                                    touchscreen-end)))
-           (nth 1 event))
-      (event--posn-at-point)))
+  (if (or (eq (car event) 'touchscreen-begin)
+          (eq (car event) 'touchscreen-end))
+      ;; Touch screen begin and end events save their information in a
+      ;; different format, where the mouse position list is the cdr of
+      ;; (nth 1 event).
+      (cdadr event)
+    (or (and (consp event)
+             ;; Ignore touchscreen update events.  They store the posn
+             ;; in a different format, and can have multiple posns.
+             (not (eq (car event) 'touchscreen-update))
+             (nth 1 event))
+        (event--posn-at-point))))
 
 (defun event-end (event)
   "Return the ending position of EVENT.
-EVENT should be a click, drag, or key press event.
+EVENT should be a click, drag, touch screen, or key press event.
 
 See `event-start' for a description of the value returned."
   (declare (side-effect-free t))
-  (or (and (consp event)
-           (not (memq (car event) '(touchscreen-begin
-                                    touchscreen-update
-                                    touchscreen-end)))
-           (nth (if (consp (nth 2 event)) 2 1) event))
-      (event--posn-at-point)))
+  (if (or (eq (car event) 'touchscreen-begin)
+          (eq (car event) 'touchscreen-end))
+      (cdadr event)
+    (or (and (consp event)
+             (not (eq (car event) 'touchscreen-update))
+             (nth (if (consp (nth 2 event)) 2 1) event))
+        (event--posn-at-point))))
 
 (defsubst event-click-count (event)
   "Return the multi-click count of EVENT, a click or drag event.
index ca61f8cfeee2453a5986e8173307d61f75fa5cdd..0eb4ea76f4f0f5119e705a01e0ad422e48181d1f 100644 (file)
@@ -61,13 +61,19 @@ returned by `current-time'."
          (string-to-number (match-string 1 emacs-version)))
   "Minor version number of this version of Emacs.")
 
-(defconst emacs-build-system (or (and (eq system-type 'android)
+;; N.B. (featurep 'android) is tested for in addition to
+;; `system-type', because that can also be Android on a TTY-only
+;; Android build that doesn't employ the window system packaging
+;; support.  (bug#65319)
+(defconst emacs-build-system (or (and (featurep 'android)
+                                      (eq system-type 'android)
                                       (android-read-build-system))
                                  (system-name))
   "Name of the system on which Emacs was built, or nil if not available.")
 
 (defconst emacs-build-time (if emacs-build-system
-                               (or (and (eq system-type 'android)
+                               (or (and (featurep 'android)
+                                        (eq system-type 'android)
                                         (android-read-build-time))
                                    (current-time)))
   "Time at which Emacs was dumped out, or nil if not available.")
@@ -183,7 +189,8 @@ correspond to the running Emacs.
 
 Optional argument DIR is a directory to use instead of `source-directory'.
 Optional argument EXTERNAL is ignored."
-  (cond ((eq system-type 'android)
+  (cond ((and (featurep 'android)
+              (eq system-type 'android))
          (emacs-repository-version-android))
         (t (emacs-repository-version-git
             (or dir source-directory)))))
@@ -229,7 +236,8 @@ this reports on the current state of the sources, which may not
 correspond to the running Emacs.
 
 Optional argument DIR is a directory to use instead of `source-directory'."
-  (cond ((eq system-type 'android)
+  (cond ((and (featurep 'android)
+              (eq system-type 'android))
          (emacs-repository-branch-android))
         (t (emacs-repository-branch-git
             (or dir source-directory)))))
index 9e7c31224e009c0bb165abef94ae7a54f4ba50bc..fabf590f6b842a8e791f02c0bb56d6d8bbafe938 100644 (file)
 
 ;;; Compatibility.
 
-(defun widget-event-point (event)
+(defsubst widget-event-point (event)
   "Character position of the end of event if that exists, or nil.
 EVENT can either be a mouse event or a touch screen event."
-  (if (eq (car-safe event) 'touchscreen-begin)
-      (posn-point (cdadr event))
-    (posn-point (event-end event))))
+  (posn-point (event-end event)))
 
 (defun widget-button-release-event-p (event)
   "Non-nil if EVENT is a mouse-button-release event object."