1. 17 Oct, 2012 2 commits
    • Eli Zaretskii's avatar
      Fix warnings when compiling on MS-Windows with -std=gnu99. · a68089e4
      Eli Zaretskii authored
       src/makefile.w32-in ($(BLD)/w32.$(O)): 
       ($(BLD)/vm-limit.$(O)): 
       ($(BLD)/term.$(O)): 
       ($(BLD)/unexw32.$(O)): 
       ($(BLD)/fileio.$(O)): 
       ($(BLD)/dispnew.$(O)): Update dependencies.
       src/w32term.h (w32_initialize_display_info, initialize_w32_display):
       Add prototypes.
       src/w32proc.c: Include ctype.h.
       src/w32.h (init_environment, check_windows_init_file)
       (syms_of_ntproc, syms_of_ntterm, dostounix_filename)
       (unixtodos_filename, init_winsock, srandom, random, sys_pipe)
       (set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
       (sys_link): Add prototypes.
       src/w32.c: Include w32select.h.
       (sys_access, e_malloc, sys_select): Add prototypes.
       (emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
       src/vm-limit.c [WINDOWSNT]: Include w32heap.h.
       src/unexw32.c: Include lisp.h and w32.h.
       src/term.c [WINDOWSNT]: Include w32term.h.
       src/process.c [WINDOWSNT]: Add prototype of sys_select.
       src/fileio.c [WINDOWSNT]: Include w32.h.
       src/dispnew.c [WINDOWSNT]: Include w32.h.
      
       nt/inc/pwd.h (getuid, geteuid): Add prototypes.
       nt/inc/ms-w32.h (sys_wait, _getpid, gmtgime_r, localtime_r)
       (signal_handler, sys_signal, sigemptyset, sigfillset, sigprocmask)
       (pthread_sigmask, sigismember, setpgrp, sigaction, alarm)
       (sys_kill, getpagesize): Add prototypes for emulated functions.
       nt/inc/grp.h (getgid, getegid): Add prototypes.
       nt/gmake.defs (DEBUG_CFLAGS) [NOOPT]: Add -std=gnu99.
       nt/configure.bat (chkapiN): Avoid compiler warning in junk.c when
       compiling with -std=gnu99.
       nt/config.nt (CHECK_LISP_OBJECT_TYPE): Don't undef, so that it
       could be used via --cflags switch to configure.bat.
      a68089e4
    • Juanma Barranquero's avatar
      Fix ChangeLog typos. · 1f9f395d
      Juanma Barranquero authored
      1f9f395d
  2. 08 Oct, 2012 1 commit
  3. 02 Oct, 2012 1 commit
    • Eli Zaretskii's avatar
      Fix compilation warnings in the MS-Windows build. · d8ab37a8
      Eli Zaretskii authored
       src/w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
       consistent with the change in return value of 'safe_strsignal'.
      
       nt/preprep.c (RVA_TO_PTR): Cast the result to 'void *', to avoid
       compiler warnings when using the value.
      d8ab37a8
  4. 01 Oct, 2012 1 commit
    • Eli Zaretskii's avatar
      Clean up the Windows x64 changes. · 2d7d1608
      Eli Zaretskii authored
       nt/preprep.c (RVA_TO_PTR): Use 'unsigned char *' instead of
       'void *', for pointer arithmetics.
       (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET): Enclose all
       macro arguments in parentheses.
      
       src/unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
       (RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
       (RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
       as the previous version used 'void *'.
       src/ralloc.c (ROUNDUP): Fix last change.
       (MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
       'size_t'.
      
      Fixes: debbugs:12544
      2d7d1608
  5. 30 Sep, 2012 3 commits
    • Fabrice Popineau's avatar
      Support x64 build on MS-Windows with MSVC. · 62aba0d4
      Fabrice Popineau authored
       src/w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
       (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
       compatibility with x64.
       src/w32term.c (w32_draw_underwave): Don't use GCC extensions for
       defining an XRectangle structure.
       src/w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
       arithmetics for compatibility with x64.
       src/w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
       compatibility with x64.
       src/w32heap.h: Adjust prototypes and declarations.
       src/w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
       (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
       DWORD, long, and unsigned long, for compatibility with x64.
       (allocate_heap) [_WIN64]: Reserve 32GB of memory.
       (sbrk): Argument is now of type ptrdiff_t.
       src/w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
       less than 0x0500.
       (w32_msg_pump): Use WPARAM type for 'result'.
       src/w32.c (init_environment, get_emacs_configuration): Support AMD64
       architecture.
       (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
       compatibility with x64.
       src/vm-limit.c (lim_data): Now size_t.
       (check_memory_limits): Adjust prototypes of real_morecore and
       __morecore to receive argument of type ptrdiff_t.  Use size_t for
       five_percent and data_size.
       src/unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
       variables, for compatibility with x64.
       (rva_to_section, offset_to_section, relocate_offset)
       (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
       (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
       (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
       for compatibility with x64.
       src/sysdep.c (STDERR_FILENO): Define if not already defined.
       src/ralloc.c (real_morecore): Argument type is now ptrdiff_t.
       (__morecore): Argument type is now ptrdiff_t.
       (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
       (relinquish): Use ptrdiff_t type for 'excess'.
       (r_alloc_sbrk): Argument type is now ptrdiff_t.
       src/makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
       (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
       instead of a literal number.
       src/gmalloc.c [WINDOWSNT]: Include w32heap.h.
       (min): Define only if not already defined.
       src/frame.c (x_report_frame_params): Use EMACS_UINT for the return
       value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
       hosts.
       src/image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
       'bitmaps' is a pointer.
       src/dispextern.h (x_bitmap_pixmap): Adjust prototype.
       src/alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
      
       nt/makefile.w32-in ($(TRES)): Use $(EMACS_MANIFEST).
       nt/inc/sys/socket.h: Don't map Winsock error codes to standard ones
       that are already defined.
       nt/inc/ms-w32.h (EMACS_INT, EMACS_UINT, EMACS_INT_MAX, PRIuMAX)
       (pI, _INTPTR) [_MSC_VER]: Fix definitions for MSVC.
       [_MSC_VER]: Add pragmas to suppress some MSVC warnings.
       nt/preprep.c (pfnCheckSumMappedFile, rva_to_section)
       (offset_to_section, relocate_offset, OFFSET_TO_RVA)
       (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
       (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
       (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): Use
       DWORD_PTR instead of DWORD for compatibility with x64.
       nt/nmake.defs: Support AMD64.
       (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros.
       nt/gmake.defs: (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST):
       New macros.
       nt/addsection.c (pfnCheckSumMappedFile, rva_to_section)
       (offset_to_section, relocate_offset, OFFSET_TO_RVA)
       (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
       (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
       (copy_executable_and_add_section, main): Use DWORD_PTR instead of
       DWORD, for compatibility with x64.
       nt/emacs-x64.manifest: New file.
       nt/emacs-x86.manifest: Renamed from emacs.manifest.
      
       lib-src/ntlib.c (gettimeofday): Copy from src/w32.c.  lib/gettime. 
       needs this function.
      62aba0d4
    • Eli Zaretskii's avatar
      Support atimers and CPU profiler via profile.c on MS-Windows. · c06c382a
      Eli Zaretskii authored
       src/w32proc.c (sig_mask, crit_sig): New static variables.
       (sys_signal): Support SIGALRM and SIGPROF.
       (sigemptyset, sigaddset, sigfillset, sigprocmask)
       (pthread_sigmask, setpgrp): Moved here from w32.c.  sigaddset,
       sigfillset, and sigprocmask are no longer no-ops.
       (sigismember): New function.
       (struct itimer_data): New definition.
       (ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
       (crit_prof): New static variables.
       (MAX_SINGLE_SLEEP): New definition.
       (timer_loop, stop_timer_thread, term_timers, init_timers)
       (start_timer_thread, getitimer, setitimer): New functions.
       (alarm): No longer a no-op, calls setitimer.
       src/w32.c (term_ntproc): Call term_timers.
       (init_ntproc): Make sure all signals are unblocked at startup, to
       erase any traces of dumping.  Call init_timers.
       src/w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
       Windows-specific code to display the hourglass mouse pointer is no
       longer used.
       (w32_wnd_proc): Remove code that handled the WM_TIMER message due
       to hourglass timer expiration.
       (start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
       Remove, no longer used.
       (w32_note_current_window, show_hourglass, hide_hourglass): New
       functions, in support of hourglass cursor display similar to other
       window systems.
       (syms_of_w32fns): Don't initialize hourglass_timer.
       src/xdisp.c (start_hourglass, cancel_hourglass): Now used on
       WINDOWSNT as well.
       (start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
       src/w32.h (init_timers, term_timers): Add prototypes.
      
       nt/inc/sys/time.h (ITIMER_REAL, ITIMER_PROF): Define.
       (struct itimerval): Define.
       (getitimer, setitimer): Add prototypes.
       nt/inc/ms-w32.h <sigset_t> [_MSVC_VER]: Make the typedef consistent
       with MinGW.
       (SA_RESTART, SIGPROF): Define.
       nt/config.nt (HAVE_SETITIMER): Define to 1.
      c06c382a
    • Juanma Barranquero's avatar
      9ee2ee9f
  6. 29 Sep, 2012 1 commit
  7. 23 Sep, 2012 2 commits
    • Eli Zaretskii's avatar
      Clean-up left-overs after 2012-09-23T08:44:20Z!eggert@cs.ucla.edu wrt signal handling. · 5101529e
      Eli Zaretskii authored
       src/.gdbinit: Set breakpoint on terminate_due_to_signal, not on
       fatal_error_backtrace.
       src/w32proc.c (sys_kill): Undo last change: don't do anything when
       invoked to deliver SIGABRT to our own process.  This is now
       handled by emacs_raise.
      
       nt/inc/ms-w32.h (emacs_raise): Redefine to invoke emacs_abort.
      
      Fixes: debbugs:12471
      5101529e
    • Paul Eggert's avatar
      Simplify and avoid signal-handling races. · 4d7e6e51
      Paul Eggert authored
      * nt/inc/ms-w32.h (emacs_raise): New macro.
      * src/alloc.c (die):
      * src/sysdep.c (emacs_abort) [HAVE_NTGUI]:
      Avoid recursive loop if there's a fatal error in the function itself.
      * src/atimer.c (pending_atimers):
      * src/blockinput.h: Don't include "atimer.h"; no longer needed.
      (interrupt_input_pending): Remove.  All uses removed.
      pending_signals now counts both atimers and ordinary interrupts.
      This is less racy than having three separate pending-signal flags.
      (block_input, unblock_input, totally_unblock_input, unblock_input_to)
      (input_blocked_p):
      Rename from their upper-case counterparts BLOCK_INPUT,
      UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
      INPUT_BLOCKED_P, and turn into functions.  All uses changed.
      This makes it easier to access volatile variables more accurately.
      (BLOCK_INPUT_RESIGNAL): Remove.  All uses replaced by unblock_input ().
      (input_blocked_p): Prefer this to 'interrupt_input_blocked', as
      that's more reliable if the code is buggy and sets
      interrupt_input_blocked to a negative value.  All uses changed.
      * src/atimer.c (deliver_alarm_signal):
      Remove.  No need to deliver this to the parent; any thread can
      handle this signal now.  All uses replaced by underlying handler.
      * src/atimer.c (turn_on_atimers):
      * src/dispnew.c (handle_window_change_signal):
      * src/emacs.c (handle_danger_signal):
      * src/keyboard.c (kbd_buffer_get_event):
      Don't reestablish signal handler; not needed with sigaction.
      * src/blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
      (UNBLOCK_INPUT_TO):
      Rework to avoid unnecessary accesses to volatile variables.
      (UNBLOCK_INPUT_TO): Now a function.
      (totally_unblock_input, unblock_input): New decls.
      * src/data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
      (init_data): Remove.  Necessary stuff now done in init_signal.
      * src/emacs.c, src/xdisp.c: Include "atimer.h", since we invoke atimer functions.
      * src/emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
      (fatal_error_code): Remove; no longer needed.
      (terminate_due_to_signal): Rename from fatal_error_backtrace, since
      it doesn't always backtrace.  All uses changed.  No need to reset
      signal to default, since sigaction and/or die does that for us now.
      Use emacs_raise (FOO), not kill (getpid (), FOO).
      (main): Check more-accurately whether we're dumping.
      Move fatal-error setup to sysdep.c
      * src/floatfns.c: Do not include "syssignal.h"; no longer needed.
      * src/gtkutil.c (xg_get_file_name, xg_get_font):
      Remove no-longer-needed signal-mask manipulation.
      * src/keyboard.c, src/process.c (POLL_FOR_INPUT):
      Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
      * src/keyboard.c (read_avail_input): Remove.
      All uses replaced by gobble_input.
      (Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
      (kbd_buffer_store_event_hold, gobble_input):
      (record_asynch_buffer_change) [USABLE_SIGIO]:
      (store_user_signal_events):
      No need to mess with signal mask.
      (gobble_input): If blocking input and there are terminals, simply
      set pending_signals to 1 and return.  All hooks changed to not
      worry about whether input is blocked.
      (process_pending_signals): Clear pending_signals before processing
      them, in case a signal comes in while we're processing.
      By convention callers now test pending_signals before calling us.
      (UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
      New functions, to support changes to blockinput.h.
      (handle_input_available_signal): Now extern.
      (reinvoke_input_signal): Remove.  All uses replaced by
      handle_async_input.
      (quit_count): Now volatile, since a signal handler uses it.
      (handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.  All
      callers changed.  Block SIGINT only if not already blocked.
      Clear sigmask reliably, even if Fsignal returns, which it can.
      Omit unnecessary accesses to volatile var.
      (quit_throw_to_read_char): No need to restore sigmask.
      * src/keyboard.c (gobble_input, handle_user_signal):
      * src/process.c (wait_reading_process_output):
      Call signal-handling code rather than killing ourselves.
      * src/lisp.h: Include <float.h>, for...
      (IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
      (pending_signals): Now volatile.
      (syms_of_data): Now const if IEEE floating point.
      (handle_input_available_signal) [USABLE_SIGIO]:
      (terminate_due_to_signal, record_child_status_change): New decls.
      * src/process.c (create_process): Avoid disaster if memory is exhausted
      while we're processing a vfork, by tightening the critical section
      around the vfork.
      (send_process_frame, process_sent_to, handle_pipe_signal)
      (deliver_pipe_signal): Remove.  No longer needed, as Emacs now
      ignores SIGPIPE.
      (send_process): No need for setjmp/longjmp any more, since the
      SIGPIPE stuff is now gone.  Instead, report an error if errno
      is EPIPE.
      (record_child_status_change): Now extern.  PID and W are now args.
      Return void, not bool.  All callers changed.
      * src/sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
      Remove.  All uses removed.  This bug should be fixed now in a
      different way.
      (wait_for_termination_1): Use waitpid rather than sigsuspend,
      and record the child status change directly.  This avoids the
      need to futz with the signal mask.
      (process_fatal_action): Move here from emacs.c.
      (emacs_sigaction_flags): New function, containing
      much of what used to be in emacs_sigaction_init.
      (emacs_sigaction_init): Use it.  Block nonfatal system signals that are
      caught by emacs, to make races less likely.
      (deliver_process_signal): Rename from handle_on_main_thread.
      All uses changed.
      (BACKTRACE_LIMIT_MAX): Now at top level.
      (thread_backtrace_buffer, threadback_backtrace_pointers):
      New static vars.
      (deliver_thread_signal, deliver_fatal_thread_signal):
      New functions, for more-accurate delivery of thread-specific signals.
      (handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
      (deliver_arith_signal): Handle in this thread, not
      in the main thread, since it's triggered by this thread.
      (maybe_fatal_sig): New function.
      (init_signals): New arg DUMPING so that we can be more accurate
      about whether we're dumping.  Caller changed.
      Treat thread-specific signals differently from process-general signals.
      Block all signals while handling fatal error; that's safer.
      xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
      on IEEE hosts.
      When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
      Ignore SIGPIPE unless batch.
      (emacs_backtrace): Output backtrace for the appropriate thread,
      which is not necessarily the main thread.
      * src/syssignal.h: Include <stdbool.h>.
      (emacs_raise): New macro.
      * src/xterm.c (x_connection_signal): Remove; no longer needed
      now that we use sigaction.
      (x_connection_closed): No need to mess with sigmask now.
      (x_initialize): No need to reset SIGPIPE handler here, since
      init_signals does this for us now.
      
      Fixes: debbugs:12471
      4d7e6e51
  8. 18 Sep, 2012 1 commit
  9. 17 Sep, 2012 2 commits
    • Juanma Barranquero's avatar
      nt/config.nt: Sync with autogen/config.in. · caf4040f
      Juanma Barranquero authored
      (BROKEN_SA_RESTART, SYNC_INPUT): Remove.
      caf4040f
    • Glenn Morris's avatar
      Reduce the number of versioned files storing the short copyright string · 78f83752
      Glenn Morris authored
      * configure.ac (copyright): New output variable.
      (COPYRIGHT): New AC_DEFINE.
      
      * admin/admin.el (set-copyright): No more need to set copyrights for
      nextstep, or .c files.  Add configure.ac and config.nt.
      
      * lib-src/ebrowse.c (version):
      * lib-src/etags.c (print_version): Use COPYRIGHT.
      
      * nextstep/templates/Info-gnustep.plist.in:
      * nextstep/templates/InfoPlist.strings.in:
      * nextstep/templates/Info.plist.in: Let configure set copyright.
      
      * nt/config.nt (COPYRIGHT): New.
      
      * src/emacs.c: Use COPYRIGHT.
      78f83752
  10. 15 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Port _setjmp fix to POSIXish hosts as well as Microsoft. · 39a57ad0
      Paul Eggert authored
      * nt/config.nt: Attempt to sync with autogen/config.in.
      (HAVE_SIGSETJMP, HAVE__SETJMP): New macros.
      (_longjmp, _setjmp): Remove.
      * src/image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
      it's needed on POSIXish hosts that lack _setjmp.  Attempt to solve
      the Microsoft problem in a different way, by altering nt/config.nt.
      39a57ad0
  11. 14 Sep, 2012 1 commit
  12. 10 Sep, 2012 1 commit
  13. 08 Sep, 2012 1 commit
  14. 07 Sep, 2012 2 commits
  15. 05 Sep, 2012 1 commit
  16. 04 Sep, 2012 1 commit
    • Paul Eggert's avatar
      Simplify redefinition of 'abort' (Bug#12316). · 1088b922
      Paul Eggert authored
      Do not try to redefine the 'abort' function.  Instead, redo
      the code so that it calls 'emacs_abort' rather than 'abort'.
      This removes the need for the NO_ABORT configure-time macro
      and makes it easier to change the abort code to do a backtrace.
      * configure.ac (NO_ABRT): Remove.
      * admin/CPP-DEFINES (NO_ABORT): Remove.
      * nt/inc/ms-w32.h (w32_abort) [HAVE_NTGUI]: Remove.
      * src/.gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
      * src/emacs.c (abort) [!DOS_NT && !NO_ABORT]:
      Remove; sysdep.c's emacs_abort now takes its place.
      * src/lisp.h (emacs_abort): New decl.  All calls from Emacs code to
      'abort' changed to use 'emacs_abort'.
      * src/msdos.c (dos_abort) [defined abort]: Remove; not used.
      (abort) [!defined abort]: Rename to ...
      (emacs_abort): ... new name.
      * src/sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
      the place of the old 'abort' in emacs.c.
      * src/w32.c, src/w32fns.c (abort): Do not #undef.
      * src/w32.c (emacs_abort): Rename from w32_abort.
      1088b922
  17. 02 Sep, 2012 1 commit
  18. 01 Sep, 2012 1 commit
    • Daniel Colascione's avatar
      Refactor window-system configuration · 17a2cbbd
      Daniel Colascione authored
      This change streamlines the window system selection code in
      configure.in and moves many common function declarations from
      window-specific headers to frame.h.  It introduces a new TERM_HEADER
      macro in config.h: we set this macro to the right header to use for
      the window system for which we're compiling Emacs and have source
      files include it indirectly.  This way, we don't have to teach every
      file about every window system.
      17a2cbbd
  19. 24 Aug, 2012 1 commit
  20. 22 Aug, 2012 1 commit
  21. 17 Aug, 2012 1 commit
  22. 15 Aug, 2012 1 commit
  23. 14 Aug, 2012 1 commit
  24. 10 Aug, 2012 1 commit
    • Glenn Morris's avatar
      Move DIRECTORY_SEP from lisp.h to config.h · 9374581a
      Glenn Morris authored
      * configure.ac (DIRECTORY_SEP): Move here from src/lisp.h.
      
      * src/lisp.h (DIRECTORY_SEP): Let configure set it.
      
      * nt/config.nt (DIRECTORY_SEP): Move here from src/lisp.h.
      
      * lib-src/movemail.c (DIRECTORY_SEP, IS_DIRECTORY_SEP):
      * lib-src/make-docfile.c (DIRECTORY_SEP, IS_DIRECTORY_SEP):
      * lib-src/emacsclient.c (DIRECTORY_SEP, IS_DIRECTORY_SEP, IS_DEVICE_SEP):
      Remove (they are in config.h now).
      9374581a
  25. 07 Aug, 2012 1 commit
  26. 06 Aug, 2012 1 commit
    • Glenn Morris's avatar
      Remove GNU_LIBRARY_PENDING_OUTPUT_COUNT · 1c6f11f4
      Glenn Morris authored
      * configure.ac (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Remove.
      (PENDING_OUTPUT_COUNT): Absorb GNU_LIBRARY_PENDING_OUTPUT_COUNT.
      (DISPNEW_NEEDS_STDIO_EXT): New define.
      
      * src/dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
      Let configure handle it.
      (stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
      
      * nt/config.nt (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Remove.
      (PENDING_OUTPUT_COUNT): Define it as dispnew.c used to.
      
      * admin/CPP-DEFINES (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Remove.
      1c6f11f4
  27. 04 Aug, 2012 1 commit
    • Eli Zaretskii's avatar
      Fix bug #11959 with startup warnings on MS-Windows about ../site-lisp. · 76151e2c
      Eli Zaretskii authored
       src/w32.c (init_environment): Change the default values of many
       environment variables in dflt_envvars[] to NULL, to avoid pushing
       them into environment when they were not already defined.  Remove
       the code that deletes site-lisp subdirectories from the default
       value of EMACSLOADPATH, as it is no longer needed.
       (check_windows_init_file): Now external, not static.  Use
       Vload_path as is, without adding anything, as this function is now
       called when Vload_path is already set up.
       src/w32.h (check_windows_init_file): Add prototype.
       src/emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
       directory, ignore the /*/i386/ tail in Vinvocation_directory, for
       compatibility with Posix platforms.
       (main): Move the call to check_windows_init_file to here from
       w32.c.
       (decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
       any, in the DEFALT argument into the root of the Emacs build or
       installation tree, as appropriate.
       src/callproc.c (init_callproc_1): Call decode_env_path instead of
       doing its equivalent by hand.
       (init_callproc): Replace DOS_NT condition with MSDOS, thus letting
       the code that sets Vexec_path run on MS-Windows.
       src/lread.c (init_lread): Add comments to #ifdef's.
      
       nt/paths.h (PATH_LOADSEARCH, PATH_SITELOADSEARCH, PATH_EXEC)
       (PATH_DATA, PATH_DOC): Replace dummy directory names with
       directories relative to %emacs_dir%.
       (PATH_EXEC): Add lib-src/oo-spd/i386 and lib-src/oo/i386, to cater
       to the use case of running un-installed Emacs.
      76151e2c
  28. 03 Aug, 2012 2 commits
    • Juanma Barranquero's avatar
      * nt/config.nt: Sync with autogen/config.in. · 3fbc4b54
      Juanma Barranquero authored
      (DOS_NT, MSDOS): New macros.
      (WRETCODE, wait3): Remove.
      
      * nt/inc/ms-w32.h (DOS_NT): Remove; defined in config.nt.
      
      * lib-src/makefile.w32-in (LOCAL_FLAGS): Remove WINDOWSNT and DOS_NT,
      they are always defined in config.h.
      3fbc4b54
    • Eli Zaretskii's avatar
      Support symlinks on latest versions of MS-Windows. · 6dad7178
      Eli Zaretskii authored
       src/w32.c: Include winioctl.h and aclapi.h.
       (is_symlink, chase_symlinks, enable_privilege, restore_privilege)
       (revert_to_self): Forward declarations of static functions.
       <static BOOL g_b_init_get_security_info>:
       <g_b_init_create_symbolic_link>: New static flags.
       (globals_of_w32): Initialize them to zero.
       (GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
       (map_w32_filename): Improve commentary.  Simplify switch.
       (SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
       headers (most versions of MinGW w32api don't).
       (get_security_info, create_symbolic_link)
       (get_file_security_desc_by_handle, is_symlink, chase_symlinks):
       New functions.
       (sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
       in the argument file name.
       (sys_access): Call unc_volume_file_attributes only if
       GetFileAttributes fails with network-related error codes.
       (sys_rename): Diagnose renaming of a symlink when the user doesn't
       have the required privileges.
       (get_file_security_desc_by_name): Renamed from
       get_file_security_desc.
       (stat_worker): New function, with most of the guts of 'stat', and
       with addition of handling of symlinks and support for 'lstat'.  If
       possible, get file's attributes and security information by
       handle, not by name.  Produce S_IFLNK bit for symlinks, when
       called from 'lstat'.
       (stat, lstat): New functions, call 'stat_worker'.
       (symlink, readlink, careadlinkat): Rewritten to create and resolve
       symlinks when the underlying filesystem supports them.
      
       lib/src/ntlib.c (lstat): New function, calls 'stat'.
      
       nt/inc/sys/stat.h (S_IFLNK): Define.
       (S_ISLNK): A non-trivial definition.
       (lstat): Prototype instead of a macro that redirects to 'stat'.
      
       lisp/files.el (file-truename): Don't skip symlink-chasing part on
       windows-nt.  Incorporate the resolution of 8+3 short aliases on
       Windows into the loop that recursively chases symlinks.  Compare
       directory and its parent case-insensitively on MS-Windows and
       MS-DOS.
      
       etc/NEWS: Announce the symlink support on MS-Windows.
      6dad7178
  29. 02 Aug, 2012 2 commits
    • Paul Eggert's avatar
      Use C99-style 'extern inline' if available. · f162bcc3
      Paul Eggert authored
      * lib-src/profile.c (SYSTIME_INLINE): Define.
      * nt/config.nt: Sync with autogen/config.in.
      (_GL_INLINE, _GL_EXTERN_INLINE, _GL_INLINE_HEADER_BEGIN)
      (_GL_INLINE_HEADER_END): New macros.
      * src/buffer.h (BUFFER_INLINE):
      * src/category.h (CATEGORY_INLINE):
      * src/character.h (CHARACTER_INLINE):
      * src/charset.h (CHARSET_INLINE):
      * src/composite.h (COMPOSITE_INLINE):
      * src/dispextern.h (DISPEXTERN_INLINE):
      * src/lisp.h (LISP_INLINE):
      * src/systime.h (SYSTIME_INLINE):
      New macro, replacing 'static inline' in this header.
      * src/buffer.h, src/category.h, src/character.h, src/charset.h:
      * src/composite.h, src/dispextern.h, lisp.h, systime.h:
      Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
      * src/alloc.c (LISP_INLINE):
      * src/buffer.c (BUFFER_INLINE):
      * src/category.c (CATEGORY_INLINE):
      * src/character.c (CHARACTER_INLINE):
      * src/charset.c (CHARSET_INLINE):
      * src/composite.c (COMPOSITE_INLINE):
      * src/dispnew.c (DISPEXTERN_INLINE):
      * src/sysdep.c (SYSTIME_INLINE):
      Define to EXTERN_INLINE, so that the corresponding functions
      are compiled into code.
      * src/conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
      (INLINE_HEADER_END): New macros.
      * src/lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
      since it's used in non-static inline functions now.
      f162bcc3
    • Glenn Morris's avatar
      Move NT-specific include file to the NT include directory · 837b365b
      Glenn Morris authored
      * nt/inc/ms-w32.h: Move here from ../src/s.
      * nt/config.nt (config_opsysfile): Change to <ms-w32.h>.
      
      * s/ms-w32.h: Move to ../nt/inc.
      * src/makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
      Update for new ms-w32.h location.
      
      * lib-src/makefile.w32-in (MS_W32_H): Update for new ms-w32.h location.
      
      * lib/makefile.w32-in (MS_W32_H): Update for new ms-w32.h location.
      
      * lisp/emacs-lisp/authors.el (authors-renamed-files-alist): Add ms-w32.h.
      837b365b
  30. 01 Aug, 2012 2 commits
    • Juanma Barranquero's avatar
      Sync Windows port with autogen/config.in changes. · c90acc54
      Juanma Barranquero authored
      * nt/config.nt: Sync with autogen/config.in.
      (DEVICE_SEP, FLOAT_CHECK_DOMAIN, HAVE_INVERSE_HYPERBOLIC)
      (INTERNAL_TERMINAL, IS_ANY_SEP, IS_DEVICE_SEP, IS_DIRECTORY_SEP):
      New macros.
      
      * src/s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
      Remove; moved to nt/config.nt.
      c90acc54
    • Juanma Barranquero's avatar
      Adapt Windows port to recent changes in autogen/config.in. · 552a99b4
      Juanma Barranquero authored
      * lib-src/makefile.w32-in (CONFIG_H): Update dependencies.
      (CONF_POST_H): New macro.
      
      * lib/makefile.w32-in (CONFIG_H): Update dependencies.
      (CONF_POST_H): New macro.
      
      * nt/config.nt: Sync with autogen/config.in.
      Remove code moved to conf_post.h and include <conf_post.h>
      (NULL_DEVICE, SEPCHAR, SIGNAL_H_AHB, TIOCSIGSEND, USER_FULL_NAME)
      (USG5_4, WRETCODE, _longjmp, _setjmp, wait3): New macros.
      
      * src/makefile.w32-in (CONFIG_H): Update dependencies.
      (CONF_POST_H): New macro.
      
      * src/s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
      552a99b4
  31. 29 Jul, 2012 1 commit