view tests/gtk/event-stream-tests.el @ 4874:4c3f5e1ecbeb

ChangeLog for previous patch: regenerate intl-auto-encap-win32.c (fix build problems when building --with-msw=no on Cygwin) -------------------- ChangeLog entries follow: -------------------- lib-src/ChangeLog addition: 2010-01-15 Ben Wing <ben@xemacs.org> * make-mswin-unicode.pl: Various fixes to get this to work when using the Cygwin header files in /usr/include/w32api instead of the VC++ ones: -- Use /usr/include/w32api as default; don't assume that a passed-in directory always ends in .../include. -- Add `const' to list of known type modifiers. -- If function already seen, warn but don't generate twice. -- Eliminate `extern' from return type modifiers. -- Cosmetic: When eliminating APIENTRY, also eliminate following whitespace. src/ChangeLog addition: 2010-01-15 Ben Wing <ben@xemacs.org> * intl-auto-encap-win32.c: * intl-auto-encap-win32.c (qxeExtractAssociatedIcon): * intl-auto-encap-win32.c (qxeShellExecuteEx): * intl-auto-encap-win32.c (qxeSHFileOperation): * intl-auto-encap-win32.c (qxeSHQueryRecycleBin): * intl-auto-encap-win32.c (qxeSHEmptyRecycleBin): * intl-auto-encap-win32.c (qxeWNetAddConnection): * intl-auto-encap-win32.c (qxeWNetAddConnection2): * intl-auto-encap-win32.c (qxeWNetAddConnection3): * intl-auto-encap-win32.c (qxeWNetCancelConnection): * intl-auto-encap-win32.c (qxeWNetCancelConnection2): * intl-auto-encap-win32.c (qxeWNetGetConnection): * intl-auto-encap-win32.c (qxeWNetUseConnection): * intl-auto-encap-win32.c (qxeWNetConnectionDialog1): * intl-auto-encap-win32.c (qxeWNetDisconnectDialog1): * intl-auto-encap-win32.c (qxeWNetOpenEnum): * intl-auto-encap-win32.c (qxeWNetEnumResource): * intl-auto-encap-win32.c (qxeWNetGetUniversalName): * intl-auto-encap-win32.c (qxeWNetGetUser): * intl-auto-encap-win32.c (qxeWNetGetProviderName): * intl-auto-encap-win32.c (qxeWNetGetNetworkInformation): * intl-auto-encap-win32.c (qxeWNetGetLastError): * intl-auto-encap-win32.c (qxeMultinetGetConnectionPerformance): * intl-auto-encap-win32.c (qxeAppendMenu): * intl-auto-encap-win32.c (qxeCopyAcceleratorTable): * intl-auto-encap-win32.c (qxeDlgDirSelectComboBoxEx): * intl-auto-encap-win32.c (qxeEnumDesktops): * intl-auto-encap-win32.c (qxeEnumWindowStations): * intl-auto-encap-win32.c (qxeGetClassInfo): * intl-auto-encap-win32.c (qxeGetClassLong): * intl-auto-encap-win32.c (qxeGetClassName): * intl-auto-encap-win32.c (qxeGetKeyboardLayoutName): * intl-auto-encap-win32.c (qxeGetWindowLong): * intl-auto-encap-win32.c (qxeGetUserObjectInformation): * intl-auto-encap-win32.c (qxeGetWindowTextLength): * intl-auto-encap-win32.c (qxeGrayString): * intl-auto-encap-win32.c (qxeInsertMenu): * intl-auto-encap-win32.c (qxeSetProp): * intl-auto-encap-win32.c (qxeEnumICMProfiles): * intl-auto-encap-win32.c (qxeExtTextOut): * intl-auto-encap-win32.c (qxeSetICMProfile): * intl-auto-encap-win32.c (qxeTextOut): * intl-auto-encap-win32.c (qxeSHGetPathFromIDList): * intl-auto-encap-win32.c (qxeFindText): * intl-auto-encap-win32.c (qxeReplaceText): * intl-auto-encap-win32.c (qxeImmInstallIME): * intl-auto-encap-win32.c (qxeImmGetDescription): * intl-auto-encap-win32.c (qxeImmGetIMEFileName): * intl-auto-encap-win32.c (qxeImmGetCompositionString): * intl-auto-encap-win32.c (qxeImmGetCandidateListCount): * intl-auto-encap-win32.c (qxeImmGetCandidateList): * intl-auto-encap-win32.c (qxeImmGetGuideLine): * intl-auto-encap-win32.c (qxeImmConfigureIME): * intl-auto-encap-win32.c (qxeImmEscape): * intl-auto-encap-win32.c (qxeImmGetConversionList): * intl-auto-encap-win32.c (qxeImmRegisterWord): * intl-auto-encap-win32.c (qxeImmUnregisterWord): * intl-auto-encap-win32.c (qxeImmEnumRegisterWord): * intl-auto-encap-win32.c (qxesndPlaySound): * intl-auto-encap-win32.c (qxePlaySound): * intl-auto-encap-win32.c (qxewaveOutGetErrorText): * intl-auto-encap-win32.c (qxewaveInGetErrorText): * intl-auto-encap-win32.c (qxemidiOutGetErrorText): * intl-auto-encap-win32.c (qxemidiInGetErrorText): * intl-auto-encap-win32.c (qxemmioStringToFOURCC): * intl-auto-encap-win32.c (qxemmioInstallIOProc): * intl-auto-encap-win32.c (qxemmioOpen): * intl-auto-encap-win32.c (qxemmioRename): * intl-auto-encap-win32.c (qxemciSendCommand): * intl-auto-encap-win32.c (qxemciSendString): * intl-auto-encap-win32.c (qxemciGetDeviceID): * intl-auto-encap-win32.c (qxemciGetErrorString): * intl-auto-encap-win32.h: * intl-auto-encap-win32.h (qxemciGetErrorString): Regenerate these files from Cygwin headers. * intl-encap-win32.c: Bracket more functions in HAVE_MS_WINDOWS, to fix build problems when building --with-msw=no on Cygwin. Fixes for Cygwin headers: -- Comment out IME.H, non-existent in Cygwin. -- Make MessageBoxIndirect a `no' (don't encapsulate but generate error if used) because it has a structure parameter that needs to be A/W split but is declared as FOO*, and our parser can't split this.
author Ben Wing <ben@xemacs.org>
date Fri, 15 Jan 2010 05:12:07 -0600
parents db7068430402
children ba07c880114a
line wrap: on
line source

;; This file is part of XEmacs.
;;
;; XEmacs is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by the
;; Free Software Foundation; either version 2, or (at your option) any
;; later version.
;;
;; XEmacs 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
;; along with XEmacs; see the file COPYING.  If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
;; Boston, MA 02111-1301, USA.  */

;also do this: make two frames, one viewing "*scratch*", the other "foo".
;in *scratch*, type (sit-for 20)^J
;wait a couple of seconds, move cursor to foo, type "a"
;a should be inserted in foo.  Cursor highlighting should not change in
;the meantime.

;do it with sleep-for.  move cursor into foo, then back into *scratch*
;before typing.
;repeat also with (accept-process-output nil 20)

;make sure ^G aborts sit-for, sleep-for and accept-process-output:

 (defun tst ()
  (list (condition-case c
	    (sleep-for 20)
	  (quit c))
	(read-char)))

 (tst)^Ja^G    ==>  ((quit) 97) with no signal
 (tst)^J^Ga    ==>  ((quit) 97) with no signal
 (tst)^Jabc^G  ==>  ((quit) 97) with no signal, and "bc" inserted in buffer

; with sit-for only do the 2nd test.
; Do all 3 tests with (accept-proccess-output nil 20)

/*
Additional test cases for accept-process-output, sleep-for, sit-for.
Be sure you do all of the above checking for C-g and focus, too!

; Make sure that timer handlers are run during, not after sit-for:
(defun timer-check ()
  (add-timeout 2 #'(lambda (ignore) (message "timer ran")) nil)
  (sit-for 5)
  (message "after sit-for"))

; The first message should appear after 2 seconds, and the final message
; 3 seconds after that.
; repeat above test with (sleep-for 5) and (accept-process-output nil 5)

; Make sure that process filters are run during, not after sit-for.
(defun fubar ()
  (message "sit-for = %s" (sit-for 30)))
(add-hook 'post-command-hook 'fubar)

; Now type M-x shell RET
; wait for the shell prompt then send: ls RET
; the output of ls should fill immediately, and not wait 30 seconds.

; repeat above test with (sleep-for 30) and (accept-process-output nil 30)



; Make sure that recursive invocations return immediately:
(defmacro test-diff-time (start end)
  `(+ (* (- (car ,end) (car ,start)) 65536.0)
      (- (cadr ,end) (cadr ,start))
      (/ (- (caddr ,end) (caddr ,start)) 1000000.0)))

(defun testee (ignore)
  (sit-for 10))

(defun test-them ()
  (let ((start (current-time))
        end)
    (add-timeout 2 'testee nil)
    (sit-for 5)
    (add-timeout 2 'testee nil)
    (sleep-for 5)
    (add-timeout 2 'testee nil)
    (accept-process-output nil 5)
    (setq end (current-time))
    (test-diff-time start end)))

(test-them) should sit for 15 seconds.