aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32fns.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Teach Emacs on MS-Windows how to export frame screenshotsEli Zaretskii9 days1-0/+44
| | | | | | | | * src/w32image.c (w32_gdip_export_frame): New function. (gdiplus_init): Load 'GdipCreateBitmapFromHBITMAP' from GDI+ DLL. * src/w32fns.c (Fw32_export_frame): New primitive. * etc/NEWS: Announce the new primitive.
* ; Fix recently installed changesEli Zaretskii2026-02-111-9/+6
| | | | | | | | | | | | | | * src/w32fns.c (w32_register_for_sleep_notifications) (sleep_notification_callback): Fix signatures. * src/w32term.h (w32_register_for_sleep_notifications): Fix prototype. These changes avoid compilation warnings. * lisp/system-sleep.el: Remove stray non-ASCII character. * doc/lispref/os.texi (System Sleep): Remove non-ASCII character, and fix wording and markup. * etc/NEWS: Fix wording of recently-added entry.
* system-sleep sleep blocker and sleep/wake event package (bug#80348)Stéphane Marks2026-02-111-0/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This package provides platform-neutral interfaces to block your system from entering idle sleep and a hook to process pre-sleep and post-wake events. Implementations are for D-Bus on GNU/Linux, macOS/GNUstep, and MS-Windows. * lisp/system-sleep.el: New package. * src/fns.c: Qpre_sleep, Qpost_wake: New DEFSYM. * src/nsfns.m (Fns_block_system_sleep, Fns_unblock_system_sleep) (syms_of_nsfns): New functions. * src/nsterm.m (applicationDidFinishLaunching): Subscribe to pre-sleep and post-wake notifications. (systemWillSleep, systemDidWake): New function. * src/w32fns.c (Fw32_block_system_sleep) (Fw32_unblock_system_sleep, Fw32_system_sleep_block_count) (sleep_notification_callback) (w32_register_for_sleep_notifications): New function. (syms_of_w32fns): Sw32_unblock_system_sleep Sw32_block_system_sleep Sw32_system_sleep_block_count: New defsubr. * src/w32term.h (Fw32_block_system_sleep): New extern. * src/w32term.c (w32_initialize): Call w32_register_for_sleep_notifications. * doc/lispref/os.texi: Document the system-sleep package. * doc/lispref/commands.texi: Update sleep-event special documentation. * etc/NEWS: Announce the new package.
* Add frame identifiers (bug#80138)Stéphane Marks2026-01-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A unique frame id is assigned to a new or cloned frame, and reused on an undeleted frame. The id facilitates unambiguous identification among frames that share identical names or titles, deleted frames where a live frame object no longer exists that we can resurrect by id, for example via 'tab-bar-undo-close-tab'. It also aids debugging at the C level using the frame struct member id. Rewrite 'clone-frame' and 'undelete-frame' to not let bind variables that 'make-frame' uses to avoid conflicts with nested 'make-frame' calls, for example via 'after-make-frame-functions'. * lisp/frame.el (clone-frame, undelete-frame): Use 'frame--purify-parameters' to supply parameters explicitly. (undelete-frame--save-deleted-frame): Save frame id for restoration. (undelete-frame): Restore frame id. (frame--purify-parameters): New defun. (make-frame): Assign a new id for a new or cloned frame, reuse for undeleted frame. * src/frame.h (struct frame): Add id member. (frame_next_id): New extern. * src/frame.c (frame_next_id): New global counter. (frame_set_id, frame_set_id_from_params): New function. (Fframe_id): New DEFUN. (syms_of_frame <Sframe_id>): New defsubr. (syms_of_frame <Qinternal_id>): New DEFSYM. (syms_of_frame <frame_internal_parameters>): Add 'Qinternal_id'. * src/androidfns.c (Fx_create_frame): * src/haikufns.c (Fx_create_frame): * src/nsfns.m (Fx_create_frame): * src/pgtkfns.c (Fx_create_frame): * src/w32fns.c (Fx_create_frame): * src/xfns.c (Fx_create_frame): Call 'frame_set_id_from_params'. * doc/lispref/frames.texi: Add documentation. * etc/NEWS: Announce frame id.
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* December 2025 spelling fixesPaul Eggert2025-12-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of the fixes are to continue to use American rather than British spelling. * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): Fix misspelled ‘:foreground’s. * etc/themes/modus-themes.el (modus-themes-faces): Fix misspelled ‘modus-themes-bold’. * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): Rename from rx--normalise-char-pattern. (rx--optimize-or-args): Rename from rx--optimise-or-args. * lisp/frame.el (frame--special-parameters): Fix misspelled "right-divider-width". * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): Use American spelling “centered”, to match current libfprintf. * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): Rename from org-fold-core--optimise-for-huge-buffers. (org-fold-core-update-optimization): Rename from org-fold-core-update-optimisation, leaving an alias behind. (org-fold-core-remove-optimization): Rename from org-fold-core-remove-optimisation, leaving an alias behind. * lisp/org/org.el (org-advertized-archive-subtree): This alias is now obsolete. * lisp/play/zone.el (zone-ignored-buffers): Fix misspelling of ‘zone--buffer-encrypted-p’. * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): Fix misspelling of ‘csharp’ group. * lisp/vc/vc.el (vc-clonable-backends-custom-type): Rename from vc-cloneable-backends-custom-type, leaving an alias behind. * test/lisp/emacs-lisp/bytecomp-tests.el: (bytecomp-tests--warn-arity-non-compiled-callee): Rename from bytecomp-tests--warn-arity-noncompiled-callee. (bytecomp-test-defface-spec): Reword a deliberate misspelling of “default” that is so common I don’t want it to pollute the spelling dictionary. * test/lisp/emacs-lisp/package-vc-tests.el: (package-vc-tests-preserve-artifacts): Rename from package-vc-tests-preserve-artifacts. * test/lisp/eshell/em-prompt-tests.el: (em-prompt-test/forward-backward-paragraph-1): Reword a deliberate misspelling of “goodbye” that is so common I don’t want it to pollute the spelling dictionary.
* ; Fix coding style in w32fns.cPo Lu2025-12-221-14/+14
| | | | | * src/w32fns.c (Fw32_badge, syms_of_w32fns): Stylistic corrections.
* ; Fix system-taskbar-badges on MS-WindowsEli Zaretskii2025-12-211-2/+2
| | | | | | | | * src/w32fns.c (Fw32_badge): Fix typos in specifying color values. * lisp/system-taskbar.el (system-taskbar-w32-badge-background) (system-taskbar-w32-badge-foreground): Adjust to Windows conventions. (Bug#79859)
* System GUI taskbar and progress reporter hooks (bug#79859)Stéphane Marks2025-12-211-0/+327
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement system GUI taskbar/dock/launcher icon badge, icon progress indicator, icon attention alert features for D-Bus platforms (tested on KDE and GNOME), NS (macOS/GNUstep), MS-Windows. Add 'progress-reporter-update-functions' abnormal hook to facilitate taskbar progress display, and other custom progress reporters. The default function list is 'progress-reporter-echo-area' which is backward compatible. * lisp/subr.el (progress-reporter-update-functions): New defvar. (progress-reporter-echo-area): New defun. (progress-reporter-do-update): Run progress-reporter-update-functions for both numerical and pulsing reporters. (progress-reporter-done): Run progress-reporter-done-functions. * lisp/system-taskbar.el: New file. * src/nsfns.m (Fns_badge, Fns_progress_indicator) (Fns_request_user_attention): New function. (syms_of_nsfns): Add defsubr Sns_badge, Sns_request_user_attention, Sns_progress_indicator. Add DEFSYM Qinformational, Qcritical. * src/w32fns.c (rgb_list_to_colorref, Fw32_badge) (Fw32_request_user_attention, Fw32_progress_indicator): New function. (syms_of_w32fns): Add defsubr Sw32_badge, Sw32_progress_indicator, Sw32_request_user_attention. Add DEFSYM Qinformational, Qcritical. * doc/emacs/frames.texi: User documentation. * doc/lispref/os.texi: Programmer documentation. * etc/NEWS: Announce system-taskbar-mode. Announce progress reporter callback enhancements.
* Remove all traces of MSVC support from MS-Windows codeEli Zaretskii2025-11-271-5/+0
| | | | | | | | | | | | | | | | We dropped support for MSVC long ago, and nowadays only support MinGW for the MS-Windows builds of Emacs. * src/w32term.h: * src/w32fns.c: * src/w32.c: * nt/inc/sys/socket.h: * nt/inc/stdalign.h: * nt/inc/ms-w32.h: Remove MSVC-specific code and preprocessor conditions. * nt/inc/ms-w32.h: Don't redirect Posix functions to MS _FOO equivalents, as MinGW headers do that nowadays better, not necessarily via functions, and do not disable that when __STDC__ is defined.
* Add `toolkit-theme' and 'toolkit-theme-set-functions'Ahmed Khanzada2025-11-221-0/+3
| | | | | | | | | | | | | | | * etc/NEWS: Document `toolkit-theme' and 'toolkit-theme-set-functions' * lisp/frame.el: Add 'toolkit-theme-set-functions' * src/frame.c: Add `toolkit-theme' Elisp variable * src/gtkutil.c: (xg_update_dark_mode_for_all_displays): Set `toolkit-theme' and call 'toolkit-theme-set-functions' * src/w32fns.c: (w32_applytheme): Send WM_EMACS_SET_TOOLKIT_THEME message to Lisp thread. * src/w32term.h: Declare WM_EMACS_SET_TOOLKIT_THEME * src/w32term.c: (w32_read_socket): Receive WM_EMACS_SET_TOOLKIT_THEME message and set `toolkit-theme' and call 'toolkit-theme-set-functions'
* * src/w32fns.c (Fw32_system_idle_time): New function.Eli Zaretskii2025-11-091-0/+28
|
* Fix MS-Windows tray notifications from different Emacs framesEli Zaretskii2025-10-111-10/+22
| | | | | | | | | | | | | | | | | * src/w32fns.c (EMACS_TRAY_NOTIFICATION_ID_INIT): Rename from EMACS_TRAY_NOTIFICATION_ID; all users adjusted. (last_tray_notification_id): New static variable. (add_tray_notification): Advance 'last_tray_notification_id' for each new notification; wrap around to the fixed initial value when reached the maximum. This allows Lisp programs track notifications and remove them from the same frame from which they were created. (Fw32_notification_notify, Fw32_notification_close): Doc fixes. * doc/lispref/os.texi (Desktop Notifications): Update the documentation of 'w32-notification-notify' and 'w32-notification-close'. Bug#79400
* ; * src/w32fns.c (Fx_create_frame): Fix copy/paste errors in last change.Eli Zaretskii2025-07-261-4/+4
|
* Add frame parameter which allows border transparencyGarklein2025-07-261-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The new 'borders-respect-alpha-background' frame parameter, when set to 't', will make window dividers and internal borders respect the 'alpha-background' frame parameter. This allows transparent gaps between windows. * doc/lispref/frames.texi (Font and Color Parameters): Document the change. * src/frame.c (frame_parm_table, syms_of_frame) (gui_set_borders_respect_alpha_background): * src/frame.h (struct frame): Add frame parameter. * src/androidfns.c (x_create_frame, android_create_tip_frame) (android_frame_parm_handlers): * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame) (haiku_frame_parm_handlers): * src/nsfns.m (ns_frame_parm_handlers, x_create_frame): * src/w32fns.c (x_create_frame, w32_create_tip_frame) (w32_frame_parm_handlers): Add dummy parameters for backends that don't support opacity. * src/pgtkfns.c (pgtk_frame_parm_handlers, x_create_frame) (pgtk_create_tip_frame): * src/pgtkterm.c (pgtk_draw_window_divider): * src/xfns.c (x_create_frame, x_create_tip_frame) (x_frame_parm_handlers) * src/xterm.c (x_draw_window_divider) (x_clear_under_internal_border): Implement parameter on backends that support opacity.
* ; Fix warnings in MinGW buildsEli Zaretskii2025-06-141-0/+1
| | | | | | | | * src/w32fns.c (msh_mousewheel): Declare. * src/treesit.c (treesit_debug_print_linecol): Fix format specifiers. * lib-src/pop.c (pfn_getaddrinfo, pfn_freeaddrinfo): Now static.
* Support 'C-g C-g C-g' "urgent quit" feature on MS-WindowsEli Zaretskii2025-06-141-0/+7
| | | | | * src/w32fns.c (post_character_message): Support triple-C-g. (Bug#78737)
* ; Avoid compiler warnings in MinGW buildsEli Zaretskii2025-06-011-27/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/w32proc.c (child_proc_count, child_procs) (Vw32_valid_locale_ids, Vw32_valid_codepages): Declare 'static'. * src/w32inevt.c (faked_key): Declare. * src/w32heap.c (data_region_base, data_region_end, heap): Declare. * src/w32console.c (keyboard_handle, current_tty, cost): Declare. * src/w32.c: Declare function pointers 'static'. (excptr, excprec, ctxrec, g_b_init_compare_string_w) (g_b_init_debug_break_process, LookupAccountSid_Name, dir_static) (winsock_lib, _wsa_errlist): Declare. * src/w32uniscribe.c: Declare function pointers 'static'. (uniscribe_available, harfbuzz_available): Declare. * src/w32term.c: Declare function pointers 'static'. (vertical_scroll_bar_min_handle, horizontal_scroll_bar_min_handle) (vertical_scroll_bar_top_border) (vertical_scroll_bar_bottom_border) (horizontal_scroll_bar_left_border) (horizontal_scroll_bar_right_border, last_scroll_bar_drag_pos): Declare 'static'. * src/w32xfns.c (input_available, interrupt_handle, lpHead) (lpTail, nQueue): Declare. * src/w32menu.c: Declare function pointers 'static'. * src/w32term.h (w32_frame_parm_handlers): Declare. * src/w32fns.c: Declare function pointers 'static'. (w32_darkmode, w32_color_map, deferred_msg_head, tip_frame) (tip_timer, tip_last_string, tip_last_frame, tip_last_parms): * src/lisp.h (daemon_type): Declare for WINDOWSNT as well. * nt/cmdproxy.c (escape_char, child, interactive): Declare 'static'. (Bug#78193)
* Fix drag-and-drop treatment of reused tooltip framesPo Lu2025-02-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | * src/androidfns.c (Fx_show_tip): Set `tip_window' to that of any reused tooltip frame. * src/haikufns.c (unwind_create_frame): Return whether the frame was destroyed, as on X. (unwind_create_tip_frame, haiku_create_frame, Fx_show_tip): Synchronize with X. (do_unwind_create_frame): New function. (tip_window): Remove unused variable. * src/nsfns.m (tip_window, unwind_create_tip_frame): Remove unused variable `tip_window'. * src/pgtkfns.c (pgtk_create_tip_frame): Rename to pgtk_create_tip_frame. (Fx_show_tip): Adjust accordingly. Set `tip_window' to that of any reused tooltip frame. * src/w32fns.c (Fx_show_tip): * src/xfns.c (Fx_show_tip): Set `tip_window' to that of any reused tooltip frame.
* Merge branch 'scratch/no-purespace' into 'master'Stefan Kangas2025-02-011-2/+2
|\
| * Pure storage removal: Replace calls to removed functionsPip Cet2024-12-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (string_bytes, pin_string, valid_lisp_object_p) (process_mark_stack, survives_gc_p, syms_of_alloc): * src/androidterm.c (android_term_init): Replace call to 'build_pure_c_string'. * src/buffer.c (init_buffer_once, syms_of_buffer): * src/bytecode.c (exec_byte_code): * src/callint.c (syms_of_callint): * src/callproc.c (syms_of_callproc): * src/category.c (Fdefine_category): * src/coding.c (syms_of_coding): * src/comp.c (Fcomp__compile_ctxt_to_file0) (maybe_defer_native_compilation, syms_of_comp): * src/data.c (Fsetcar, Fsetcdr, Fdefalias, Faset, syms_of_data): * src/dbusbind.c (syms_of_dbusbind): * src/doc.c (Fsnarf_documentation): * src/emacs-module.c (syms_of_module): * src/eval.c (Finternal__define_uninitialized_variable) (Fdefconst_1, define_error, syms_of_eval): * src/fileio.c (syms_of_fileio): * src/fns.c (Ffillarray, Fclear_string, check_mutable_hash_table): * src/fontset.c (syms_of_fontset): * src/frame.c (make_initial_frame): * src/haikufns.c (syms_of_haikufns): * src/intervals.c (create_root_interval): * src/keyboard.c (syms_of_keyboard): * src/keymap.c (Fmake_sparse_keymap, Fset_keymap_parent) (store_in_keymap, syms_of_keymap): * src/lisp.h: * src/lread.c (Fload, read0, intern_c_string_1, define_symbol) (Fintern, defsubr, syms_of_lread): * src/pdumper.c (Fdump_emacs_portable): * src/pgtkfns.c (syms_of_pgtkfns): * src/pgtkterm.c (syms_of_pgtkterm): * src/process.c (syms_of_process): * src/search.c (syms_of_search): * src/sqlite.c (syms_of_sqlite): * src/syntax.c (syms_of_syntax): * src/treesit.c (syms_of_treesit): * src/w32fns.c (syms_of_w32fns): * src/xdisp.c (syms_of_xdisp): * src/xfaces.c (syms_of_xfaces): * src/xfns.c (syms_of_xfns): * src/xftfont.c (syms_of_xftfont): * src/xterm.c (syms_of_xterm): Remove calls to 'PURE_P', 'CHECK_IMPURE', 'Fpurecopy', and replace calls to 'build_pure_c_string', 'pure_list', 'pure_listn', etc., by impure equivalents.
* | Signal error when keyword/arg list is malformedRobert Pluim2025-01-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/data.c (syms_of_data): Add Qmalformed_keyword_arg_list error symbol. * src/process.c (Fmake_process, Fmake_pipe_process) (Fserial_process_configure, Fmake_serial_process) (Fmake_network_process): Signal Qmalformed_keyword_arg_list when the argument list length is odd. * src/sound.c (parse_sound): Also here.. * src/w32fns.c (Fw32_notification_notify): ..and here. (Bug#75584)
* | Replace call[1-8] with callnStefan Kangas2025-01-191-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the introduction of the 'calln' macro, the 'call1', 'call2', ..., 'call8' macros are just aliases for the former. This is slightly misleading and potentially unhelpful. The number of arguments N can also easily go out-of-synch with the used alias callN. There is no reason not to replace these aliases with using 'calln' directly. To reduce the risk for mistakes, the tool Coccinelle was used to make these changes. See <https://coccinelle.gitlabpages.inria.fr/website/>. * src/alloc.c, src/androidvfs.c, src/androidfns.c, src/buffer.c: * src/callint.c, src/callproc.c, src/casefiddle.c, src/charset.c: * src/chartab.c, src/cmds.c, src/coding.c, src/composite.c: * src/data.c, src/dbusbind.c, src/dired.c, src/doc.c: * src/emacs.c, src/eval.c, src/fileio.c, src/filelock.c: * src/fns.c, src/frame.c, src/gtkutil.c, src/haikufns.c: * src/haikumenu.c, src/image.c, src/insdel.c, src/intervals.c: * src/keyboard.c, src/keymap.c, src/lisp.h, src/lread.c: * src/minibuf.c, src/nsfns.m, src/nsselect.m, src/pgtkfns.c: * src/pgtkselect.c, src/print.c, src/process.c, src/sort.c: * src/syntax.c, src/textconv.c, src/textprop.c, src/undo.c: * src/w32fns.c, src/window.c, src/xfaces.c, src/xfns.c: * src/xmenu.c, src/xselect.c, src/xterm.c: Replace all uses of 'call1', 'call2', ..., 'call8' with 'calln'.
* | Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'Stefan Kangas2025-01-151-5/+3
| | | | | | | | | | | | | | | | | | | | | | * src/comp.c (emit_limple_insn): * src/msdos.c (dos_set_keyboard, dos_rawgetc): * src/sysdep.c (convert_speed, list_system_processes): * src/w32fns.c (deliver_wm_chars, Fx_file_dialog): * src/w32term.c (record_event, w32_read_socket): Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'. * admin/coccinelle/arrayelts.cocci: New file.
* | Update copyright year to 2025Paul Eggert2025-01-011-1/+1
|/ | | | Run "TZ=UTC0 admin/update-copyright".
* Fix drag-n-drop on MS-WindowsCecilio Pardo2024-11-141-1/+6
| | | | | | | | * src/w32fns.c (struct w32_drop_target): New member 'ref_count'. (w32_drop_target_AddRef): Increment reference count. (w32_drop_target_Release): Decrement reference count, and free the target only if the reference count is zero. (w32_createwindow): Initialize reference count. (Bug#74312)
* * src/w32fns.c (process_dropfiles): Fix cygw32 build (bug#74312).Eli Zaretskii2024-11-111-0/+14
|
* Improve drag and drop on MS-Windows (bug#3468)Cecilio Pardo2024-10-251-1/+16
| | | | | | | | | | | | | | | Add support for 'dnd-scroll-margin' and 'dnd-indicate-insertion-point' by calling 'dnd-handle-movement' when dragging the mouse. * lisp/term/w32-win.el (w32-drag-n-drop): Call 'dnd-handle-movement' when applicable. * src/w32fns.c (w32_handle_drag_movement): New function, sends a WM_EMACS_DRAGOVER message. (w32_drop_target_DragEnter): Call 'w32_handle_drag_movement'. (w32_drop_target_DragOver): Call 'w32_handle_drag_movement'. * src/w32term.c: (w32_read_socket): Handle WM_EMACS_DRAGOVER, sending a drag-n-drop event. * src/w32term.h: Define new WM_EMACS_DRAGOVER message.
* ; Fix coding style in w32fns.cPo Lu2024-10-091-9/+9
| | | | | * src/w32fns.c (process_dropfiles, STDMETHODCALLTYPE) (w32_createwindow): Fix coding style.
* Implement drag-n-drop for w32 with support for files and textCecilio Pardo2024-10-081-6/+215
| | | | | | | | | | | | | | | | | | | | | | | | Implement drag-n-drop with IDropTarget for MS-Windows. This allows for dropping files or text. * lisp/term/w32-win.el (w32-drag-n-drop): Change to handle files or strings. * src/w32fns.c (process_dropfiles): New function to convert DROPFILES struct to array of strings. (w32_process_dnd_data): New function to process drop data. (w32_try_get_data): Extract data from IDataObject. (w32_createwindow): Assign an IDropTarget to each new frame. (w32_name_of_message): New message. (w32_msg_pump): Changed CoInitialize to OleInitialize, needed by the drag-n-drop functions. (w32_wnd_proc): New struct w32_drop_target, and w32_drop_target_* functions to implement the IDropTarget interface. * src/w32term.c (w32_read_socket): Handle WM_EMACS_DROP and remove WM_EMACS_DROPFILES. * src/w32term.h: New message WM_EMACS_DROP. (Bug#3468) * etc/NEWS: Announce the new feature.
* ; Use c-ctype.h in w32*.cEli Zaretskii2024-09-181-5/+5
| | | | | | * src/w32.c: * src/w32fns.c: Replace ctype.h functions by equivalent c-ctype.h functions.
* Merge from origin/emacs-30Eli Zaretskii2024-07-271-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 88e1ec22f27 Update to Org 9.7.9 1ae2f004473 Fix edge-case with 'which-key-dont-use-unicode' setter 68a5f1f7d18 NS: prevent makeKeyWindow warnings (bug#69525) 59a895ec499 ; * .gitignore: Add lisp/eshell/esh-groups.el. 5c08cd4e7c3 ; * doc/emacs/cmdargs.texi (Initial Options): Fix last ch... 309d0a71864 Add PROBLEMS entry for bug#72303 87389f9ff90 ; Improve documentation of 'line-prefix' and 'wrap-prefix'. 268a2d10fc9 Improve documentation of '--init-directory' command-line ... c27055a938a ; cperl-mode.el: Fix fontification of flip-flop (Bug#72296) fcd4e4c895d ; * admin/MAINTAINERS: Add myself for maintaining some ar... fdc133e97f6 Fix bug in server.el introduced by 0d7d835902df af527051cd3 ; * admin/MAINTAINERS: Remove Nicolas Petton. 7170282a59a lisp/minibuffer.el (completion--sifn-requote): Fix bug#72176 68906f184cb * admin/notes/spelling: Update note. 9eea6be5abf Don't produce invalid XML with multi-line commenting style b97786d9f6e ; * etc/NEWS: Entry for 'gnus-summary-limit-to-age' (bug#... a7996615663 Standardize possessive apostrophe usage in manuals, docs,... 67faaead754 Don't refer to obsolete finder group "wp" # Conflicts: # etc/NEWS
| * Standardize possessive apostrophe usage in manuals, docs, and commentsStefan Kangas2024-07-251-2/+2
| | | | | | | | | | See the note in admin/notes/documentation. Ref: https://lists.gnu.org/r/emacs-devel/2012-02/msg00649.html
* | Merge from origin/emacs-30Stefan Monnier2024-07-191-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a478423d19f * lisp/progmodes/peg.el (peg-syntax-classes): Typo (bug#7... 951fb93956d * lisp/transient.el (static-if): Remove duplicated defini... 0218fb21437 Adapt file-remote-p doc 34c1094e607 ; Fix typo in etc/ORG-NEWS (Bug#72186) 5916b172bdc * etc/TODO: Delete item about merging Magit. a6cab228d4d ; Fix typos 41dc28244f2 * doc/man/emacs.1.in: Add "No warranty" notice. b2ac3435867 ; * doc/man/emacs.1.in: Improve wording. 110b3d08d73 Improve emacs man page description of --user flag 4911f08912a Checkdoc fixes in allout-widgets.el 109b592d77b Checkdoc fixes in subr.el 46436720787 Checkdoc fixes in touch-screen.el 9889774c62e Checkdoc fixes in treesit.el # Conflicts: # etc/NEWS
| * ; Fix typosStefan Kangas2024-07-181-1/+1
| |
* | Make error messages adhere to our standardsStefan Kangas2024-07-161-1/+1
|/ | | | | | | | | | | | | | | | | | | | | * src/cygw32.c (chdir_to_default_directory): * src/fns.c (secure_hash): * src/keyboard.c (Finternal_handle_focus_in): * src/keymap.c (store_in_keymap): * src/pgtkfns.c (pgtk_set_scroll_bar_foreground) (pgtk_set_scroll_bar_background, Fx_export_frames) (Fpgtk_set_monitor_scale_factor, pgtk_get_defaults_value) (pgtk_set_defaults_value, Fpgtk_print_frames_dialog) (pgtk_get_monitor_scale_factor): * src/pgtkterm.c (pgtk_set_parent_frame): * src/process.c (network_interface_info, send_process): * src/w32.c (w32_read_registry): * src/w32fns.c (Fw32_read_registry): * src/window.c (Frecenter): * src/xfns.c (Fx_export_frames, Fx_print_frames_dialog) (x_set_mouse_color): Make 'error' message strings follow our guidelines. More specifically, they should not end in a period, and normally also be capitalized. See '(elisp) Programming Tips'.
* ; * src/w32fns.c (Fw32_notification_close): Fix typo (bug#72091).Raffael Stocker2024-07-131-1/+1
|
* ; * src/w32fns.c (funhook): Restore mistakenly lost line.Eli Zaretskii2024-07-031-0/+1
|
* Merge remote-tracking branch 'savannah/scratch/windows-98' into emacs-30Po Lu2024-06-301-15/+64
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (W32_LIBS): Don't link with -lusp10 on non-Cygwin systems. * src/emacs.c (main): Call globals_of_w32 before the startup directory is initialized. * src/w32.c (maybe_load_unicows_dll): Call load_unicows_dll_for_w32fns. * src/w32.h: Update prototypes. * src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Do not register the Uniscribe font driver when unavailable. (pfnSHFileOperationW): New function pointer. (Fsystem_move_file_to_trash): Load UNICOWS.DLL if not yet loaded. Call SHFileOperationW through said function pointer. (pfnShellExecuteExW): New function pointer. (Fw32_shell_execute) [!CYGWIN]: Load UNICOWS.DLL if not yet loaded. Call ShellExecuteExW through said function pointer. (pfnShell_NotifyIconW): New function pointer. (add_tray_notification, delete_tray_notification): Call Shell_NotifyIconW through said function pointer. (Fw32_notification_notify): Load UNICOWS.DLL. (Fw32_notification_close): Return if Shell_NotifyIconW is unavailable, as when UNICOWS.DLL has yet to be loaded. (load_unicows_dll_for_w32fns): New function. * src/w32notify.c (pfnReadDirectoryChangesW): New function pointer. (watch_completion, remove_watch, Fw32notify_add_watch) (Fw32notify_rm_watch, Fw32notify_valid_p): Call ReadDirectoryChangesW through said function pointer, and assert its presence. (globals_of_w32notify): Load ReadDirectoryChangesW from KERNEL32.DLL. * src/w32uniscribe.c (pfnScriptItemize, pfnScriptShape) (pfnScriptPlace, pfnScriptGetGlyphABCWidth, pfnScriptFreeCache) (pfnScriptGetCMap): New function pointers. (uniscribe_close, uniscribe_shape, uniscribe_encode_char) (uniscribe_check_otf_1): Call Uniscribe functions through the same. (syms_of_w32uniscribe_for_pdumper): Load Uniscribe library and required functions from the same, and if unavailable, return while leaving uniscribe_available intact. On Cygwin, simply assign USP10.DLL functions to the said new function pointers.
| * Restore functionality on Windows 98Po Lu2024-06-231-15/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (W32_LIBS): Don't link with -lusp10 on non-Cygwin systems. * src/emacs.c (main): Call globals_of_w32 before the startup directory is initialized. * src/w32.c (maybe_load_unicows_dll): Call load_unicows_dll_for_w32fns. * src/w32.h: Update prototypes. * src/w32fns.c (Fx_create_frame, w32_create_tip_frame): Do not register the Uniscribe font driver when unavailable. (pfnSHFileOperationW): New function pointer. (Fsystem_move_file_to_trash): Load UNICOWS.DLL if not yet loaded. Call SHFileOperationW through said function pointer. (pfnShellExecuteExW): New function pointer. (Fw32_shell_execute) [!CYGWIN]: Load UNICOWS.DLL if not yet loaded. Call ShellExecuteExW through said function pointer. (pfnShell_NotifyIconW): New function pointer. (add_tray_notification, delete_tray_notification): Call Shell_NotifyIconW through said function pointer. (Fw32_notification_notify): Load UNICOWS.DLL. (Fw32_notification_close): Return if Shell_NotifyIconW is unavailable, as when UNICOWS.DLL has yet to be loaded. (load_unicows_dll_for_w32fns): New function. * src/w32notify.c (pfnReadDirectoryChangesW): New function pointer. (watch_completion, remove_watch, Fw32notify_add_watch) (Fw32notify_rm_watch, Fw32notify_valid_p): Call ReadDirectoryChangesW through said function pointer, and assert its presence. (globals_of_w32notify): Load ReadDirectoryChangesW from KERNEL32.DLL. * src/w32uniscribe.c (pfnScriptItemize, pfnScriptShape) (pfnScriptPlace, pfnScriptGetGlyphABCWidth, pfnScriptFreeCache) (pfnScriptGetCMap): New function pointers. (uniscribe_close, uniscribe_shape, uniscribe_encode_char) (uniscribe_check_otf_1): Call Uniscribe functions through the same. (syms_of_w32uniscribe_for_pdumper): Load Uniscribe library and required functions from the same, and if unavailable, return while leaving uniscribe_available intact. On Cygwin, simply assign USP10.DLL functions to the said new function pointers.
* | Avoid compiler warnings in the Cygwin-w32 buildKen Brown2024-06-261-1/+1
|/ | | | | * src/w32fns.c [DEFAULT_IMAGE_BASE]: Don't define on Cygwin. * src/cygw32.h (w32_get_resource): Add prototype. (Bug#71786)
* Correctly cache images when frames vary in their font metricsPo Lu2024-06-201-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (mark_frame): Mark this frame's image cache, if it exist. (mark_terminals): Cease marking T->image_cache. * src/androidfns.c (unwind_create_frame, Fx_create_frame) (android_create_tip_frame): * src/haikufns.c (unwind_create_frame, haiku_create_frame) (haiku_create_tip_frame): * src/nsfns.m (unwind_create_frame): * src/pgtkfns.c (unwind_create_frame, Fx_create_frame) (x_create_tip_frame): * src/xfns.c (unwind_create_frame, Fx_create_frame) (x_create_tip_frame): * src/w32fns.c (unwind_create_frame, Fx_create_frame) (w32_create_tip_frame): Remove adjustments of the frame image cache's reference count rendered redundant by the assignment of image caches to individual frames rather than terminals. * src/dispextern.h (struct image_cache) <scaling_col_width>: New field. * src/frame.c (gui_set_font): In lieu of clearing F's image cache unconditionally, establish whether the column width as considered by compute_image_size has changed, and if so, adjust or reassign the frame's image cache. (make_frame): Clear F->image_cache. * src/frame.h (struct frame) <image_cache>: New field. (FRAME_IMAGE_CACHE): Return F->image_cache. * src/image.c (make_image_cache): Clear C->scaling_col_width. (cache_image): Adjust to new means of assigning image caches to frames. * src/termhooks.h (struct terminal) <image_cache>: Delete field. * src/xfaces.c (init_frame_faces): Do image cache assignment with all new frames.
* Enable accessing tool bar with the touch screenPo Lu2024-06-091-0/+3
| | | | | | | | | * src/w32fns.c (w32_createwindow): Reset tool_bar_dwID. * src/w32term.c (w32_read_socket): Reserve touch event sequences that fall on the tool bar for future tool-bar manipulation. * src/w32term.h (struct w32_output) <tool_bar_dwID>: New field.
* Amend last changePo Lu2024-06-091-1/+46
| | | | | | | | | | | | | | | | * lisp/loadup.el: Load touch-screen.el on MS-Windows. * src/w32fns.c (Emacs_GESTURECONFIG): New structure. (SetGestureConfig_fn): New variable. (w32_createwindow): Disable emulated mouse and gesture events for the frame's window. (w32_wnd_proc) <WM_LBUTTONDOWN, WM_RBUTTONDOWN, WM_LBUTTONUP> <WM_RBUTTONUP>: Ignore mouse events which are marked as emulated pointer events. (globals_of_w32fns): Load SetGestureConfig from user32.dll. * src/w32term.c (w32_read_socket): Correct utilization of GetTouchInputInfo, coordinate spaces, &c.
* Report touch events on MS-WindowsPo Lu2024-06-091-0/+36
| | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Announce change. * src/w32fns.c (RegisterTouchWindow_fn): New function. (w32_createwindow): Assign a base value for touch event identifiers to the frame, and register for touch input. (w32_wnd_proc): Forward WM_TOUCH/WM_TOUCHMOVE messages to the main thread. (globals_of_w32fns): Load RegisterTouchWindow from user32.dll. * src/w32term.c (w32_read_socket) <WM_TOUCH>: Detect WM_TOUCH events, compare and record their touch points with and into the frame's record of their prior state, and report the same to Lisp. (pfnCloseTouchInputHandle, pfnGetTouchInputInfo): New variables. (w32_initialize): Load the above functions from user32.dll. * src/w32term.h (MAX_TOUCH_POINTS): New definition. (struct w32_output) <touch_ids, touch_x, touch_y, touch_base>: New fields.
* Replace calls to intern with a constant string with DEFSYMsPo Lu2024-05-091-27/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/alloc.c (display_malloc_warning, syms_of_alloc): * src/buffer.c (Fmake_indirect_buffer, Fbuffer_local_variables) (Frename_buffer, Fkill_buffer, Fset_buffer_major_mode) (Fset_buffer_multibyte, syms_of_buffer): * src/callint.c (read_file_name, Fcall_interactively) (syms_of_callint): * src/callproc.c (call_process, create_temp_file) (syms_of_callproc): * src/charset.c (Fdefine_charset_internal, syms_of_charset): * src/cmds.c (internal_self_insert, syms_of_cmds): * src/coding.c (record_conversion_result) (Fdefine_coding_system_internal, syms_of_coding): * src/dbusbind.c (xd_signature, Fdbus_message_internal) (syms_of_dbusbind): * src/dispnew.c (init_faces_initial): * src/doc.c (Fsnarf_documentation, syms_of_doc): * src/dosfns.c (system_process_attributes, syms_of_dosfns): * src/emacs.c (init_cmdargs, Fdump_emacs, decode_env_path) (syms_of_emacs): * src/eval.c (call_debugger, Fdefvaralias, syms_of_eval): * src/fileio.c (barf_or_query_if_file_exists) (Finsert_file_contents, auto_save_error, Fdo_auto_save) (syms_of_fileio): * src/filelock.c (lock_file_1, syms_of_filelock): * src/fontset.c (fontset_from_font, syms_of_fontset): * src/frame.c (make_frame_without_minibuffer, syms_of_frame): * src/gnutls.c (emacs_gnutls_certificate_details) (Fgnutls_peer_status_warning_describe, Fgnutls_peer_status) (gnutls_verify_boot, syms_of_gnutls): * src/gtkutil.c (style_changed_cb, find_rtl_image): * src/image.c (imagemagick_filename_hint, gs_load) (syms_of_image): * src/keyboard.c (command_loop_1, read_char, timer_start_idle) (read_char_minibuf_menu_prompt, Fsuspend_emacs) (syms_of_keyboard): * src/keymap.c (Fmap_keymap, Flookup_key, Fdescribe_vector) (describe_vector, syms_of_keymap): * src/lread.c (Fread, Fread_positioning_symbols, syms_of_lread): * src/minibuf.c (Fabort_minibuffers, Fread_buffer) (Fcompleting_read, syms_of_minibuf): * src/msdos.c (XMenuActivate, run_msdos_command, syms_of_msdos): * src/nsfns.m (Fx_display_backing_store, Fx_display_visual_class) (Fns_hide_emacs, Fsystem_move_file_to_trash, ns_create_tip_frame) (x_hide_tip, Fx_show_tip, syms_of_nsfns): * src/nsfont.m (ns_spec_to_descriptor, ns_descriptor_to_entity) (syms_of_nsfont): * src/pdumper.c (Fdump_emacs_portable): * src/pgtkfns.c (Fx_display_visual_class, x_create_tip_frame) (Fx_show_tip, syms_of_pgtkfns): * src/pgtkterm.c (syms_of_pgtkterm, pgtk_cr_export_frames): * src/term.c (term_get_fkeys_1, set_tty_color_mode, Fsuspend_tty) (Fresume_tty, tty_menu_activate, syms_of_term): * src/terminal.c (create_terminal, syms_of_terminal): * src/w32fns.c (Fx_display_backing_store) (Fx_display_visual_class, Fset_message_beep, Fx_open_connection) (Fx_show_tip, Fx_file_dialog, Fsystem_move_file_to_trash) (Fw32_toggle_lock_key, syms_of_w32fns): * src/w32font.c (w32_enumfont_pattern_entity, syms_of_w32font): * src/w32term.c (w32_bitmap_icon, syms_of_w32term): * src/xdisp.c (message_dolog, define_frame_cursor1) (syms_of_xdisp): * src/xfaces.c (tty_lookup_color, syms_of_xfaces): * src/xml.c (make_dom, syms_of_xml): * src/xterm.c (syms_of_xterm): * src/xwidget.c (store_xwidget_download_callback_event) (store_xwidget_js_callback_event, syms_of_xwidget): Define symbols for symbols interned with `intern' from a constant string, delete duplicate DEFSYM directives, and substitute them for such calls to intern. This excludes only those symbols which are interned and referenced only once during Emacs's initialization, the timing of whose interning is inconsequential, and symbols in w32.c, which would need to be transferred to a new syms_of_w32 function that I cannot test.
* Unbreak the Cygw32 build broken by resent WTS_SESSION changesEli Zaretskii2024-03-191-3/+5
| | | | | | | | * src/w32xfns.c (WTS_VIRTUAL_CLASS): * src/w32fns.c (WTS_VIRTUAL_CLASS, WM_WTSSESSION_CHANGE) (WTS_SESSION_LOCK): Define only for WINDOWSNT. * src/w32xfns.c (drain_message_queue): Call 'reset_w32_kbdhook_state' only for WINDOWSNT. (Bug#69888)
* ; Fix last change to compile with mingw.org's MinGWEli Zaretskii2024-03-141-0/+7
| | | | | | * src/w32xfns.c: * src/w32fns.c (WTS_VIRTUAL_CLASS) [!MINGW_W64]: Declare. * src/w32xfns.c: Include wtsapi32.h.
* Fix resetting keyboard hook state on MS-WindowsRaffael Stocker2024-03-141-4/+80
| | | | | | | | | | | | | | | Register session notifications so Emacs is notified when the computer is being locked, as required to reset the low level keyboard hook state. (Bug#69083). * src/w32term.h: * src/w32fns.c (setup_w32_kbdhook, remove_w32_kbdhook) (w32_wnd_proc, globals_of_w32fns, maybe_pass_notification): Register and manage session notifications in GUI Emacs. * src/w32console.c (initialize_w32_display, find_ime_window): * src/w32xfns.c (drain_message_queue): Register notifications and reset keyboard hook state in console Emacs. * src/w32.c (term_ntproc): Un-register session notifications when terminating.
* Allow users to opt out of following Windows Dark modeEli Zaretskii2024-01-271-1/+9
| | | | | | | | | | | * src/w32fns.c (globals_of_w32fns) <w32-follow-system-dark-mode>: New variable. (w32_applytheme): Disable application of Dark mode if 'w32-follow-system-dark-mode' is nil. * etc/NEWS: * doc/emacs/msdos.texi (Windows Misc): Document 'w32-follow-system-dark-mode'.