1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-01 18:00:40 -08:00
Commit graph

37 commits

Author SHA1 Message Date
Eli Zaretskii
cb5af79249 Fix compiler warnings in the MinGW build
* configure.ac [mingw32]: Don't add -Wpointer-sign, and add
-Wno-pointer-sign, to keep the noise level down.

* nt/mingw-cfg.site (gl_cv_warn_c__Wredundant_decls): Disable
-Wredundant-decls, as that produces a lot of noise due to
redeclaration of time-related functions by gnulib.
* nt/runemacs.c (set_user_model_id): Fix argument type of
'SetCurrentProcessExplicitAppUserModelID'.

* src/image.c (x_create_bitmap_from_file) [HAVE_NTGUI]: Don't
declare 'dpyinfo', as it is unused.
(xpm_load): Fix warnings about pointer signedness.
* src/w32proc.c (IsValidLocale, init_winsock): Remove redundant
prototypes.
(sys_spawnve): Avoid warnings about discarding 'const' qualifier.
(sys_select): Provide prototype.
(g_b_init_compare_string_w): Move declaration to file scope.
* src/w32heap.c (dumped_data_commit): Now static.
(FREEABLE_P): Avoid warnings about pointer comparison with integer.
(mmap_realloc): Cast to 'char *' for arithmetics on void pointers.
* src/w32console.c (ctrl_c_handler, sys_tputs, sys_tgetstr)
(evalcost, cmputc, cmcheckmagic, cmcostinit, cmgoto, Wcm_clear):
Provide prototypes.
* src/w32.c (globals_of_w32, conv_sockaddr_to_lisp): Remove
redundant prototypes.
(w32_get_internal_run_time, map_w32_filename): Provide prototype.
(init_environment, sys_ctime): Avoid warnings about discarding
'const' qualifier.
Include utimens.h.
(sys_ctime, sys_chdir, sys_creat, sys_fopen, sys_mkdir)
(sys_open, sys_rename, sys_rmdir, is_slow_fs, term_winsock)
(sys_close, sys_dup2, sys_read, sys_write, sys_localtime): Provide
prototypes.
(sys_rename_replace): Use %d to avoid compiler warnings.
(_wsa_errlist): Make the message text 'const char *', to avoid
compilation warnings.
(dynlib_reset_last_error): Move prototype to file scope.
(w32_get_resource): First argument is now 'const char *'.
* src/w32uniscribe.c (syms_of_w32uniscribe): Provide prototype.
(otf_features): Second argument is no 'const char *'.
* src/w32term.c (free_frame_menubar, x_wm_set_size_hint)
(x_set_window_size): Remove redundant prototypes.
(XChangeGC, XGetGCValues, w32_draw_underwave)
(w32_draw_rectangle, w32_shift_glyphs_for_insert, x_mouse_leave)
(x_calc_absolute_position, x_destroy_window): Now static.
(menubar_selection_callback): Move prototype to file scope.
* src/w32font.c (g_b_init_get_glyph_outline_w): Remove redundant
declaration.
(w32_to_x_charset): Fix warnings about discarding 'const' qualifier.
(w32font_full_name): Fix warnings about implicit conversion of
'float' to 'double'.
* src/w32reg.c (w32_get_rdb_resource): Fix warnings about
discarding 'const' qualifier.
* src/w32menu.c (syms_of_w32menu, globals_of_w32menu)
(set_frame_menubar): Remove redundant prototypes.
(menubar_selection_callback, w32_menu_display_help): Provide
prototypes.
(simple_dialog_show): Avoid warnings about discarding 'const'
qualifier.
* src/w32fns.c (syms_of_w32fns, globals_of_w32fns)
(free_frame_menubar, w32_strerror, x_set_menu_bar_lines)
(x_set_tool_bar_lines, x_set_internal_border_width): Remove
redundant prototypes.
(current_popup_menu): Remove redundant declaration.
(colormap_t): Member 'name' is now 'const char *'.
(add_system_logical_colors_to_map): Fix signed/unsigned warnings.
(x_decode_color, x_set_border_pixel)
(x_clear_under_internal_border, x_set_name, hook_w32_key)
(reset_w32_kbdhook_state, deliver_wm_chars, w32_backtrace): Now
static.
(w32_load_cursor, w32_key_to_modifier, map_keypad_keys)
(w32_msg_worker, w32_last_error): Provide prototypes.
(funhook, lookup_vk_code): Avoid warnings about missing
parentheses.
(x_default_font_parameter, Fw32_notification_notify): Avoid
warnings about discarding 'const' qualifier.
(Fx_create_frame): Avoid warnings about empty body of 'else'.
(x_screen_planes): Ifdef away unused function.
(Fx_show_tip): Remove unused variables.
(Fw32_battery_status): Avoid warnings about implicit promotion
from float to double.
(Fw32_notification_notify): Initialize 'timeout'.
* src/profiler.c (profiler_cpu_running) [HAVE_ITIMERSPEC]: Only
define the TIMER_SETTIME_RUNNING value if it will be used.
* src/w32notify.c (send_notifications): Ifdef away an empty if
clause.  Remove unused variable.
(watch_end, watch_completion): Provide prototypes.
* src/sound.c (sound_warning) [WINDOWSNT]: Don't define: unused.
* src/callproc.c (child_setup, getenv_internal_1) [WINDOWSNT]: Fix
warning with pointer signedness.
* src/gnutls.c (gnutls_x509_crt_get_signature)
(gnutls_alert_send_appropriate) [WINDOWSNT]: Don't define, and
don't load them from the GnuTLS library, as they are no longer
used.
* src/process.c (DATAGRAM_CHAN_P) [!DATAGRAM_SOCKETS]: Don't
define, as it's unused.
* src/unexw32.c (open_input_file, open_output_file)
(close_file_data): Remove redundant prototypes.
(_start): provide prototype.
(mainCRTStartup): Move prototype to file level.
(find_section): Use type-cast to shut up compiler warnings.
(offset_to_section, relocate_offset): Now static.
(find_section): First argument is now a 'const char *'.
(offset_to_section): Ifdef away, as it's unused.
* src/w32heap.h (find_section): Adjust prototype.
* src/dynlib.c (dynlib_reset_last_error): Provide prototype.
* src/dired.c (directory_files_internal_w32_unwind): Avoid
warnings about missing prototypes.
(is_slow_fs) [WINDOWSNT]: Provide prototype at file level.
(directory_files_internal) [WINDOWSNT]: Fix warnings about pointer
signedness.
* src/fileio.c (Ffile_writable_p, Ffile_regular_p) [WINDOWSNT]:
Fix warnings about pointer signedness.
* src/filelock.c (WTMP_FILE) [WINDOWSNT]: Don't define, it's
unused.
* src/sysdep.c (_getpid): Remove redundant prototype.
(sys_subshell) [DOS_NT]: Don't define 'status', it's unused.
[!MSDOS]: Don't define 'st', it's unused.
(init_sys_modes) [DOS_NT]: Don't define 'terminal', it's unused.
(str_collate) [WINDOWSNT]: Avoid warnings about pointer signedness.
* src/keyboard.c (tty_read_avail_input) [WINDOWSNT]: Don't define
n_to_read, as it is not used.
(MAX_ENCODED_BYTES) [WINDOWSNT]: Don't define, as it's unused.
* src/w32font.h (syms_of_w32font): Remove redundant prototype.
* src/xfaces.c (x_display_info) [HAVE_NTGUI]: Remove unused macro.
* src/term.c (init_tty) [DOS_NT]: Ifdef away variables that are
not used by DOS_NT builds, to avoid compiler warnings.
* src/menu.c (current_popup_menu) [HAVE_NTGUI]: Remove redundant
declaration.
* src/dispnew.c (init_display) [WINDOWSNT]: Use type-cast to shut
up compiler warnings.
* src/w32term.h (x_set_window_size, x_get_focus_frame)
(x_make_frame_visible, x_make_frame_invisible, x_iconify_frame)
(x_set_frame_alpha, x_activate_menubar, x_bitmap_icon)
(x_free_frame_resources, x_real_positions)
(display_x_get_resource): Remove redundant prototypes.

* lib-src/ntlib.c (sys_ctime, sys_fopen, sys_chdir, mkostemp)
(sys_rename, gettimeofday): Provide prototypes.
* lib-src/ntlib.h (getuid, geteuid, mkostemp): Remove redundant
declarations.
* lib-src/emacsclient.c (w32_getenv): Argument is now 'const char *'.
(xstrdup, w32_get_resource, w32_window_app, w32_execvp, ttyname)
(close_winsock, initialize_sockets, w32_set_user_model_id)
(w32_find_emacs_process, w32_give_focus) [WINDOWSNT]: Add
prototypes.
(w32_get_resource) [WINDOWSNT]: Fix a warning about signedness
difference.
(w32_set_user_model_id): Update prototype of
SetCurrentProcessExplicitAppUserModelID to avoid compiler
warnings.
(start_daemon_and_retry_set_socket) [WINDOWSNT]: Use type-cast to
shut up compiler warnings.
* lib-src/etags.c (MAXPATHLEN) [WINDOWSNT]: Remove unused macro.
2016-05-21 20:06:33 +03:00
Fabrice Popineau
326fff41fa Improve w32notify notifications
* src/w32notify.c (DIRWATCH_BUFFER_SIZE): New macro.
(struct notification): 'terminate' is now a HANDLE.
(send_notifications): Argument is now a pointer to a
notification.  Don't loop waiting for the notification to be
acknowledged by the main thread; instead, just add the
notification to the linked list of notifications waiting to be
acknowledged.
(watch_end): Don't close the directory handle.
(watch_completion): Allocate a new notification structure to be
added to the notifications set.  Call ReadDirectoryChangesW
immediately after adding the new notification, and before sending
a message to the main thread about them.
(watch_worker): Don't loop calling ReadDirectoryChangesW; instead,
call it just once -- it will be called again in watch_completion.
Loop waiting for the main thread's indication to terminate.
(start_watching): Create the event to be used to indicate to the
worker thread that its should terminate.
(remove_watch): Indicate to the worker thread that it should
terminate.
* src/w32term.c (queue_notifications): Loop over all the
notifications in the linked list, processing all of them in one
go.
* src/w32inevt.c (handle_file_notifications): Loop over all the
notifications in the linked list.
* src/w32xfns.c (init_crit): Initialize the linked list of file
notifications.
(delete_crit): Free the linked list of file notifications,
including any unprocessed notifications left in it.
* src/w32term.h (struct notifications_se): New struct.

* test/lisp/filenotify-tests.el (file-notify-test02-events)
(file-notify-test05-dir-validity): Add read-event calls to
facilitate event recognition by the main thread in batch mode.
2016-03-19 14:44:53 +02:00
Paul Eggert
7352c6c695 Rework C source files to avoid ^(
Work around Bug#22884 by rewording comments and strings to avoid ‘(’
at the start of a line unless it starts a function.  This change
is a short-term hack; in the longer run we plan to fix cc-mode’s
performance for C files that have ‘(’ at the start of a line in a
comment or string.
2016-03-10 07:59:19 -08:00
Eli Zaretskii
be1d87492e Fix issues found by auditing w32notify code
* src/w32inevt.c (handle_file_notifications): Count the number of
events to be returned.
* src/w32notify.c (send_notifications): Don't copy to the file
notification buffer more than it can hold.  (Bug#22534)
2016-02-06 18:30:35 +02:00
Paul Eggert
0e963201d0 Update copyright year to 2016
Run admin/update-copyright.
2016-01-01 01:34:24 -08:00
Juanma Barranquero
478d9d9db3 * src/w32notify.c (Fw32notify_add_watch): Fix version check. 2015-10-25 00:00:26 +02:00
Michael Albinus
c762d3305c Use common report_file_notify_error function
* src/fileio.c (report_file_notify_error): New function.

* src/inotify.c (report_inotify_error): Remove function.
(inotify_callback, symbol_to_inotifymask, Finotify_add_watch)
(Finotify_rm_watch): Use report_file_notify_error.

* src/lisp.h (report_file_notify_error): Declare external function.

* src/w32notify.c (report_w32notify_error): Remove function.
(Fw32notify_add_watch, Fw32notify_rm_watch):
Use report_file_notify_error.
2015-09-16 15:50:37 +02:00
Eli Zaretskii
c387f50823 Improve the doc string of w32notify-valid-p
* src/w32notify.c (Fw32notify_valid_p): Mention in the doc string
that removing a watch makes its object invalid.
2015-09-14 12:41:51 +03:00
Eli Zaretskii
ef5b1a22bb Report file-notify-error in w32notify.c
* src/w32notify.c (report_w32notify_error): New function.
(Fw32notify_add_watch, Fw32notify_rm_watch): Use it to report
errors, instead of calling report_file_error.  (Bug#21432)
2015-09-14 10:31:17 +03:00
Eli Zaretskii
12629d2857 Implement w32notify-valid-p
* src/w32notify.c (Fw32notify_valid_p): New function.  (Bug#21432)

* lisp/filenotify.el (w32notify-valid-p): No longer an alias for
'identity'.
2015-09-14 10:02:04 +03:00
Eli Zaretskii
485763c0dc MS-Windows followup for change in semantics of XIL and XLI. (Bug#15880)
src/w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
 src/w32notify.c (Fw32notify_add_watch, w32_get_watch_object): Use
 make_pointer_integer instead of XIL.
 (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
 src/w32inevt.c (handle_file_notifications): Use make_pointer_integer
 instead of XIL.  Put a list of the descriptor, action, and file
 name in event->arg, instead of spreading them between event->code
 and event->arg.
 src/w32term.c (queue_notifications): Use make_pointer_integer
 instead of XIL.  Put a list of the descriptor, action, and file
 name in event->arg, instead of spreading them between event->code
 and event->arg.
 src/keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
 event creation to changes in w32term.c and w32inevt.c above.
2015-01-10 13:27:35 +02:00
Eli Zaretskii
5b5dab1281 MS-Windows followup to previous commit
src/w32proc.c, src/w32.h, src/w32fns.c, src/w32font.c, src/w32menu.c:
 src/w32notify.c, src/w32proc.c, src/w32select.c, src/w32term.c:
 src/w32uniscribe.c: Remove declarations of Q* variables that
 represent symbols.
2015-01-05 22:13:58 +02:00
Paul Eggert
7e09ef09a4 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 14:26:41 -08:00
Paul Eggert
0e44a2d233 Uniquify the 'size' symbol.
* frame.c (Qsize):
* w32notify.c (Qsize): Remove.
* lisp.h (Qsize): New decl.
* lread.c (Qsize): Now extern.
* w32notify.c (syms_of_w32notify): No need to defsym.
2014-11-07 07:40:06 -08:00
Juanma Barranquero
5af73b0fe8 src/*.c: Silence a few warnings about unused vars and functions.
* src/image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
* src/sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.

* src/keyboard.c (read_decoded_event_from_main_queue): #ifdef out
  variables on Windows.

* src/w32.c (unsetenv): Remove unused var `retval'.
  (emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.

* src/w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.

* src/w32notify.c (watch_worker): Remove unnecesary var sleep_result.
  (start_watching): Remove unused var `thr'.

* src/w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
  (find_child_console): Remove unnecesary var `thread_id'.

* src/w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
  (x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
2014-03-26 11:21:55 +01:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Eli Zaretskii
439b1ae89e Converted and tested w32notify.c. 2013-12-08 20:29:12 +02:00
Eli Zaretskii
9c099ca7fd Fix bug #15933 with crashes in file-notify-tests on MS-Windows.
Support w32 file notifications in batch mode.
 src/w32proc.c (sys_select): Don't wait on interrupt_handle if it is
 invalid (which happens in batch mode).  If non-interactive, call
 handle_file_notifications to store file notification events in the
 input queue.
 src/w32notify.c (send_notifications): Handle FRAME_INITIAL frames as
 well.
 src/w32inevt.c (handle_file_notifications): Now external, not
 static.
 src/w32term.h (handle_file_notifications): Provide prototype.
 src/emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
 init_crit, since init_display, which does that otherwise, is not
 called.
2013-11-28 21:40:15 +02:00
Eli Zaretskii
fb6a5d68e3 Fix watching directories using w32notify.c.
src/w32notify.c (Fw32notify_add_watch): If the argument FILE is a
 directory, watch it and not its parent.
 (add_watch): Allow empty string in FILE.

 lisp/filenotify.el (file-notify-add-watch): Don't special-case
 w32notify when computing the directory to watch.
2013-11-27 18:03:02 +02:00
Dmitry Antipov
a10c82694e Drop FRAME_PTR typedef.
* composite.c, font.c, font.h, fontset.c, fontset.h, frame.c, frame.h:
* ftfont.c, ftxfont.c, gtkutil.c, gtkutil.h, image.c, keyboard.c:
* menu.c, menu.h, msdos.c, nsfns.m, nsfont.m, nsmenu.m, nsterm.h:
* nsterm.m, scroll.c, term.c, w32fns.c, w32font.c, w32font.h:
* w32inevt.c, w32inevt.h, w32menu.c, w32notify.c, w32term.c, w32term.h:
* w32uniscribe.c, w32xfns.c, widget.c, window.c, xdisp.c, xfaces.c:
* xfns.c, xfont.c, xftfont.c, xmenu.c, xselect.c, xterm.c:
All related users changed.
2013-08-03 07:29:03 +04:00
Eli Zaretskii
102ae68de4 Update commentary in w32notify.c. 2013-07-02 19:32:03 +03:00
Juanma Barranquero
a0eb10b32a Fix typos. 2013-06-07 05:23:57 +02:00
Eli Zaretskii
d8cd7742b3 Update doc string of w32notify-add-watch per discussions in bug #13540.
src/w32notify.c (Fw32notify_add_watch): Doc fix.
2013-01-25 11:39:47 +02:00
Paul Eggert
09b8afb6c8 Update copyright dates to 2013. 2013-01-02 08:30:50 -08:00
Paul Eggert
4a0e1924fc Spelling fixes. 2012-12-11 10:09:55 -08:00
Eli Zaretskii
f282b9f798 Proof-read comments on w32notify.c. Adapt NEWS entry. 2012-12-10 14:38:49 +02:00
Eli Zaretskii
9e1821d3a2 Don't call xfree from the watcher thread. Do it only in remove_watch. 2012-10-18 20:13:03 +02:00
Eli Zaretskii
d884121be0 Tested and fixed conversion of a descriptor (pointer) to event code. 2012-10-18 20:00:00 +02:00
Eli Zaretskii
0b86d359eb Use XIL/XLI instead of make_number/XINT for converting descriptor to a ptr.
More safety checks in using the pointer obtained from descriptor.
Not tested yet.
2012-10-18 07:13:29 +02:00
Eli Zaretskii
37a4dabe8a More than one watch is now supported.
Need to fix the issue with descriptor, now a pointer converted to Lisp integer.
2012-10-14 16:38:33 +02:00
Eli Zaretskii
977c647927 The TTY case is resolved: notifications now work even if Emacs
doesn't have focus.
2012-10-12 11:47:00 +02:00
Eli Zaretskii
182b170f7e Support file notifications in a TTY session.
FIXME: file notifications detected only when the Emacs window has focus.
2012-10-10 19:11:25 +02:00
Eli Zaretskii
eb3abb6141 Merge from trunk after addition of w32common.h. 2012-10-08 15:36:06 +02:00
Eli Zaretskii
d6de176070 Fix a typo in a comment. 2012-10-07 17:57:42 +02:00
Eli Zaretskii
7d60535412 Zero out dirwatch->dir when bailing out for any reason.
Signal an error if a watch is requested while another one is active.
2012-10-07 17:54:07 +02:00
Eli Zaretskii
c5c91b847a Final version that supports only one watch at a time. 2012-10-07 15:41:15 +02:00
Eli Zaretskii
6f011d8194 Added w32notify.c. 2012-10-07 14:36:15 +02:00