Commit graph

1071 commits

Author SHA1 Message Date
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Eli Zaretskii
634425957a Revert @documentencoding changes in the docs. 2013-12-30 19:08:32 +02:00
Paul Eggert
dcd812be6a Specify info encoding and language.
* emacs.texi, emacs-xtra.texi:
* emacs-lisp-intro.texi:
* back.texi, book-spine.texi, elisp.texi, lay-flat.texi:
* ada-mode.texi, auth.texi, autotype.texi, bovine.texi, calc.texi:
* cc-mode.texi, cl.texi, dbus.texi, dired-x.texi, ebrowse.texi:
* ede.texi, ediff.texi, edt.texi, efaq-w32.texi, efaq.texi:
* eieio.texi, emacs-gnutls.texi, emacs-mime.texi, epa.texi, erc.texi:
* ert.texi, eshell.texi, eudc.texi, flymake.texi, forms.texi:
* gnus-coding.texi, gnus-faq.texi, gnus.texi, htmlfontify.texi:
* idlwave.texi, ido.texi, info.texi, mairix-el.texi, message.texi:
* mh-e.texi, newsticker.texi, nxml-mode.texi, octave-mode.texi:
* org.texi, pcl-cvs.texi, pgg.texi, rcirc.texi, reftex.texi:
* remember.texi, sasl.texi, sc.texi, semantic.texi, ses.texi:
* sieve.texi, smtpmail.texi, speedbar.texi, srecode.texi:
* todo-mode.texi, tramp.texi, url.texi, vip.texi, viper.texi:
* widget.texi, wisent.texi, woman.texi:
Add @documentencoding, @documentlanguage as needed.

Fixes: debbugs:16292
2013-12-29 19:19:25 -08:00
Glenn Morris
ad15bd74e4 * doc/emacs/trouble.texi (Understanding Bug Reporting): Brevity.
ChangeLog fix.
2013-12-27 16:42:59 -08:00
Jarek Czekalski
fdadeb4997 Shell completion for filenames from current directory, related docs.
* lisp/shell.el  Shell completion now matches executable filenames from
	the current buffer's directory, on systems in which this behaviour
	is the default (windows-nt, ms-dos).
	* src/callproc.c (Vexec_path): Document that exec-directory is in it.
	* doc/emacs/mini.texi (Completion Options): Add a link to Shell Options.
	* doc/emacs/misc.texi (Shell Mode): Move documentation of
	shell-completion-fignore from Shell Mode to Shell Options.

Fixes: debbugs:15461
2013-12-27 21:58:21 +01:00
João Távora
3b8d5131a3 Make Electric Pair mode smarter/more useful:
* lisp/electric.el: Pairing/skipping helps preserve
  balance. Autobackspacing behaviour. Opens extra newlines between
  pairs. Skip whitespace before closing delimiters.

* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Use new
  features.

* test/automated/electric-tests.lisp: New file.

* doc/emacs/programs.texi: Describe new features.

* lisp/simple.el: Pass non-nil interactive arg to newline call inside
  newline-and-indent.
2013-12-26 22:02:49 +00:00
Chong Yidong
c93525876d Doc updates for several Emacs 24.4 changes.
* doc/lispref/commands.texi (Event Input Misc): Document new arg to
input-pending-p.

* doc/lispref/display.texi (Font Selection): Tweak example.

* doc/lispref/keymaps.texi (Active Keymaps): Re-organize the text.
(Searching Keymaps): Rewrite the pseudo-code for 24.4 changes.
(Controlling Active Maps): Note that set-transient-map uses
overriding-terminal-local-map.

* doc/lispref/nonascii.texi (Specifying Coding Systems): Don't refer to
emacs-mule-dos.
(Lisp and Coding Systems): Describe emacs-mule return value in
modern terms.

* doc/lispref/tips.texi (Coding Conventions): Tweak the coding system tip;
Emacs now uses utf-8 by default for Emacs Lisp source files.

* doc/emacs/glossary.texi (Glossary): Define MULE in modern terms.

* src/keyboard.c (Voverriding_terminal_local_map):
(Voverriding_local_map): Doc fix.

* src/keymap.c (Vemulation_mode_map_alists): Doc fix.
2013-12-25 18:24:52 +08:00
Xue Fuqiao
3a79600aa7 Doc fixes (index and comment). 2013-12-25 10:18:43 +08:00
Xue Fuqiao
1139b0be8b * doc/emacs/trouble.texi (Checklist): Fix a cross-reference. 2013-12-24 16:33:02 +08:00
Xue Fuqiao
65faed732b * doc/emacs/trouble.texi (Understanding Bug Reporting): Minor update. 2013-12-24 11:07:21 +08:00
Xue Fuqiao
b7a017ad7d * doc/emacs/regs.texi (Bookmarks): Document `bookmark-default-file'. 2013-12-23 21:17:59 +08:00
Xue Fuqiao
595c4578bd Minor doc fixes.
* doc/emacs/misc.texi (Shell Mode): Add a cross-reference.

* doc/emacs/building.texi (Lisp Eval): Add an index.
2013-12-23 21:01:25 +08:00
Glenn Morris
91dedc43f2 Misc small fixes for some recent doc changes
* doc/emacs/calendar.texi (General Calendar):
* doc/emacs/rmail.texi (Rmail Scrolling):
* doc/misc/woman.texi (Navigation):
Use itemx where appropriate.

* doc/emacs/entering.texi (Entering Emacs): Typo fix.
2013-12-22 15:13:18 -08:00
Eli Zaretskii
569c1c6ea1 Fix last commit in doc/emacs/regs.texi. 2013-12-22 20:31:38 +02:00
Xue Fuqiao
57b837ab5f Document negative argument of replacement commands.
* doc/emacs/search.texi (Special Isearch):
(Query Replace): Document negative argument of replacement commands.
2013-12-22 13:57:32 +08:00
Xue Fuqiao
07e9eaa2dc Document `isearch-forward-symbol-at-point'.
* doc/emacs/search.texi (Symbol Search): Document `isearch-forward-symbol-at-point'.
2013-12-22 13:36:29 +08:00
Xue Fuqiao
8d3c54a0b2 Document image-{next, previous}-file, plus some minor tweak. 2013-12-22 13:20:03 +08:00
Xue Fuqiao
44b9b800f1 Another NEWS mark. 2013-12-22 12:55:31 +08:00
Xue Fuqiao
ced5cc2911 * doc/emacs/regs.texi (File Registers): Document `kmacro-to-register'. 2013-12-22 10:55:43 +08:00
Xue Fuqiao
2ab18afbea Doc fix for `tab-stop-list'.
* doc/emacs/indent.texi (Tab Stops): Mention recent changes about `tab-stop-list'.
2013-12-22 09:56:52 +08:00
Xue Fuqiao
daef8ab140 Document `scroll-bar-adjust-thumb-portion'. 2013-12-22 09:45:13 +08:00
Chong Yidong
77221051a2 Tweak C-x TAB behavior changes, and update docs.
* lisp/indent.el (indent-rigidly-map): Add docstring, and move commands
into named functions.
(indent-rigidly-left, indent-rigidly-right)
(indent-rigidly-left-to-tab-stop)
(indent-rigidly-right-to-tab-stop): New functions.  Decide on
indentation direction based on bidi direction, and accumulate
sequential commands in a single undo boundary.
(indent-rigidly--pop-undo): New utility function.

* doc/emacs/indent.texi (Indentation Commands): Document C-x TAB changes.

* doc/lispref/text.texi (Region Indent): Note the new interactive
behavior of indent-rigidly.
2013-12-21 16:37:08 +08:00
Tassilo Horn
30aafaf516 Document S-SPC' as alternative to scrolling down with DEL'.
* doc/emacs/rmail.texi: Document `S-SPC' as alternative to scrolling down
with `DEL'.

* doc/emacs/calendar.texi: Ditto.

* doc/emacs/display.texi: Ditto.

* doc/emacs/help.texi: Ditto.

* doc/misc/info.texi: Document `S-SPC' as alternative to `DEL' for
scrolling.

* doc/misc/woman.texi: Ditto.
2013-12-20 17:03:12 +01:00
Tassilo Horn
7b4ec5497f Document toggle-frame-maximized' and toggle-frame-fullscreen'.
* doc/emacs/frames.texi: Document `toggle-frame-maximized' and
`toggle-frame-fullscreen' with their respective keys.
2013-12-20 16:35:53 +01:00
Tassilo Horn
2cd12d2869 Document buffer name uniquification changes.
* doc/emacs/buffers.texi: Document buffer name uniquification changes.
2013-12-20 16:18:50 +01:00
Tassilo Horn
75a1e03471 Document that `electric-indent-mode' is enabled by default.
* doc/emacs/indent.texi: Document that `electric-indent-mode' is enabled by
default.
2013-12-20 15:56:23 +01:00
Tassilo Horn
98104aea41 Document `blink-cursor-blinks'.
* doc/emacs/display.texi (Cursor Display): Document `blink-cursor-blinks'.
2013-12-20 15:51:53 +01:00
Tassilo Horn
6f1de4d1f1 Document *Messages* buffer changes.
* doc/emacs/buffers.texi: Update list-buffers "screeshop" to show Messages
as major-mode.

* doc/lispref/display.texi: Document `messages-buffer'.
2013-12-20 15:28:01 +01:00
Tassilo Horn
dfff928448 Document `initial-buffer-choice' changes.
* doc/emacs/entering.texi: Document `initial-buffer-choice' changes.

* doc/emacs/misc.texi (arguments): Document `initial-buffer-choice' changes.

* doc/lispref/os.texi: Document `initial-buffer-choice' changes.
2013-12-20 15:18:21 +01:00
Tassilo Horn
a34a0ac891 Document prefix key description in terms of ?
* doc/emacs/help.texi: Document that `?' now also shows subcommands of
prefix keys.
2013-12-20 14:55:44 +01:00
Chong Yidong
9718dea2e1 * killing.texi (Appending Kills): Note that append-next-kill can prepend the kill. 2013-12-17 23:57:38 +08:00
Eli Zaretskii
01633a17e7 Support MS-Windows file names that use characters outside of ANSI codepage.
src/w32.c (get_file_security, set_file_security)
 (create_symbolic_link): Separate pointers and boolean flags for
 ANSI and Unicode APIs.  Use the latter if w32_unicode_filenames is
 non-zero, else the former.
 (codepage_for_filenames, filename_to_utf16, )
 (filename_from_utf16, filename_to_ansi, filename_from_ansi): New
 functions.
 (init_user_info): Allow $HOME and $SHELL to include non-ANSI
 characters.
 (normalize_filename): Lose the DBCS code, now works on UTF-8.
 Accept only one argument; all callers changed.
 (dostounix_filename): Remove the second argument, now works in
 UTF-8.  All callers changed.
 (parse_root): Lose DBCS code.
 (get_long_basename, w32_get_short_filename, init_environment)
 (GetCachedVolumeInformation, sys_readdir, open_unc_volume)
 (read_unc_volume, logon_network_drive, faccessat, sys_chdir)
 (sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
 (sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
 (is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
 Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
 otherwise.
 (ansi_encode_filename): New function.
 (get_emacs_configuration, get_emacs_configuration_options):
 Functions deleted.
 (add_volume_info, GetCachedVolumeInformation): Run the input file
 name through unixtodos_filename, to ensure it is stored and
 referenced in canonical form.
 (get_volume_info): Lose the DBCS code, now works in UTF-8.
 (logon_network_drive, sys_link, utime): Improve error handling.
 (sys_access): New function.
 (hashval, generate_inode_val): Unused functions deleted.
 (symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
 (check_windows_init_file): Convert error message from UTF-8 to
 ANSI codepage, for display in the message box.
 (globals_of_w32): Set w32_unicode_filenames according to the OS
 version.
 src/w32term.c (construct_drag_n_drop): Work in Unicode mode when
 w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (syms_of_w32term): Declare w32-unicode-filenames.
 src/w32proc.c (new_child, delete_child): Remove code that handled
 unused pending_deletion and input_file members of the child struct.
 (create_child, sys_spawnve): Convert all file names to ANSI
 codepage.  Use ANSI APIs explicitly; forcibly fail if any file
 name cannot be encoded in ANSI codepage.  Don't use
 unixtodos_filename, mirror slashes by hand.
 (record_infile, record_pending_deletion): Functions deleted.
 (Fw32_short_file_name): Call w32_get_short_filename instead of
 GetShortPathName.
 src/w32notify.c (add_watch): Work in Unicode mode when
 w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
 instead, do the same with Lisp primitives.
 src/w32fns.c (file_dialog_callback, Fx_file_dialog)
 (Fsystem_move_file_to_trash, Fw32_shell_execute)
 (Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
 when w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (Fw32_shell_execute): Improve error reporting.
 (Fdefault_printer_name): Ifdef away for Cygwin.
 src/w32.h (struct _child_process): Remove input_file and
 pending_deletion members that are no longer used.
 (dostounix_filename, w32_get_short_filename, filename_from_ansi)
 (filename_to_ansi, filename_from_utf16, filename_to_utf16)
 (ansi_encode_filename): New and updated prototypes.
 src/unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
 APIs explicitly.
 (unexec): Don't use dostounix_filename, it expects a file name in
 UTF-8.  Instead, mirror backslashes by hand.  Convert NEW_NAME to
 ANSI encoding.
 src/fileio.c (Ffile_name_directory, file_name_as_directory)
 (directory_file_name, Fexpand_file_name)
 (Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
 arguments of dostounix_filename.
 (Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
 use MAX_UTF8_PATH for size of file-name strings.
 (emacs_readlinkat): Build an explicitly unibyte string for file
 names.
 (syms_of_fileio) <file-name-coding-system>
 default-file-name-coding-system>: Mention MS-Windows peculiarities.
 src/emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
 (main) [WINDOWSNT]: Convert the argv[] elements that are files or
 directories to UTF-8.
 (decode_env_path) [WINDOWSNT]: Convert file names taken from the
 environment, and each element of the input PATH, to UTF-8.
 src/dired.c (file_attributes): Use build_unibyte_string explicitly
 to make Lisp strings from user and group names.
 src/coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
 decode_file.
 src/coding.c (decode_file_name, encode_file_name): New functions.
 src/termcap.c (tgetent): Adapt to the change in arguments of
 dostounix_filename.
 src/sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
 names.
 src/msdos.c (dostounix_filename, init_environment): Adapt to the
 change in arguments of dostounix_filename.
 src/image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
 [WINDOWSNT]: Encode file names passed to the image libraries in
 ANSI codepage.
 src/gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
 [WINDOWSNT]: Convert file names to the current ANSI codepage.
 src/filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
 arguments of dostounix_filename.

 nt/inc/ms-w32.h (MAX_UTF8_PATH): New macro.
 (opendir, closedir, readdir, seekdir): Redirect to replacement
 functions.
 nt/inc/dirent.h: Make d_name[] be MAXNAMELEN*4 characters long.

 lisp/term/w32-win.el (w32-handle-dropped-file):
 lisp/startup.el (normal-top-level):
 lisp/net/browse-url.el (browse-url-file-url):
 lisp/dnd.el (dnd-get-local-file-name): On MS-Windows, encode and
 decode file names using 'utf-8' rather than
 file-name-coding-system.

 doc/emacs/mule.texi (File Name Coding): Document file-name encoding
 peculiarities on MS-Windows.

 doc/lispref/nonascii.texi (Encoding and I/O): Document file-name encoding
 peculiarities on MS-Windows.

 etc/NEWS: Mention support on MS-Windows of file names outside of the
 current locale.

Fixes: debbugs:7100
2013-12-12 20:19:10 +02:00
Glenn Morris
f9405d87cd Add support for auto-generating info/dir
* admin/update_autogen: Add option to generate info/dir.
(Usage): Add -I.
(info_flag): New variable.
(-I): New option.
(doc): Maybe check its status.
(info_dir): New function.

* admin/dir_top: New file.

* doc/emacs/emacs.texi:
* doc/lispintro/emacs-lisp-intro.texi:
* doc/lispref/elisp.texi:
* doc/misc/autotype.texi, doc/misc/cc-mode.texi, doc/misc/ediff.texi:
* doc/misc/ert.texi, doc/misc/htmlfontify.texi, doc/misc/ido.texi:
* doc/misc/octave-mode.texi, doc/misc/org.texi, doc/misc/srecode.texi:
* doc/misc/todo-mode.texi, doc/misc/tramp.texi:
Sync direntry with info/dir version.
2013-12-11 19:37:38 -08:00
Juanma Barranquero
3629130880 Fix typos in doc files (bug#16089).
* emacs/msdog.texi (Windows Keyboard): Fix typo.

* lispref/display.texi (Progress, Face Remapping):
* lispref/processes.texi (Serial Ports):
* lispref/windows.texi (Recombining Windows): Fix typos.

* misc/dbus.texi (Properties and Annotations): Fix typo.
2013-12-08 16:33:27 +01:00
Glenn Morris
26e4aa7db6 doc/ distclean rules should remove Makefiles
* emacs/Makefile.in (distclean):
* lispintro/Makefile.in (distclean):
* lispref/Makefile.in (distclean):
* misc/Makefile.in (distclean):
Remove Makefile.
2013-11-30 10:34:58 -08:00
Stefan Monnier
1659fa3fbd * doc/emacs/buffers.texi (Icomplete): Rename from Iswitchb and
rewrite accordingly.
2013-11-29 13:54:14 -05:00
Glenn Morris
17e0445be4 Empty elements in EMACSLOADPATH now stand for the default
* src/lread.c (load_path_check): Take path to check as argument.
(load_path_default): New, split from init_lread.
(init_lread): Move calc of default load-path to load_path_default.
Empty elements in EMACSLOADPATH now stand for the default.
(load-path): Doc fix.

* src/emacs.c (decode_env_path): Add option to treat empty elements
as nil rather than ".".

* src/callproc.c (init_callproc_1, init_callproc):
* src/image.c (Vx_bitmap_file_path):
* src/lisp.h (decode_env_path):
* lread.c (Vsource_directory):
Update for new argument spec of decode_env_path.

* leim/Makefile.in (RUN_EMACS): Empty EMACSLOADPATH rather than unsetting.

* lisp/Makefile.in (emacs): Empty EMACSLOADPATH rather than unsetting.

* test/automated/Makefile.in (emacs):
Empty EMACSLOADPATH rather than unsetting.

* doc/emacs/cmdargs.texi (General Variables):
Empty elements in EMACSLOADPATH now mean the default load-path.

* doc/lispref/loading.texi (Library Search):
Empty elements in EMACSLOADPATH now mean the default load-path.

* etc/NEWS: Mention this.

Fixes: debbugs:12100
2013-11-22 17:55:16 -08:00
Glenn Morris
2df102287e Use path-separator with -L, rather than just :
* lisp/startup.el (command-line-1): Use path-separator with -L.

* test/automated/Makefile.in (PATH_SEPARATOR): New, set by configure.
(EMACSOPT): Use PATH_SEPARATOR.

* doc/emacs/cmdargs.texi (Action Arguments): Use path-separator with -L.

* etc/NEWS: Related edit.
2013-11-20 19:21:50 -05:00
Glenn Morris
a0833f62d5 * lisp/startup.el (command-line-1): Allow `-L :...' to append to load-path.
* doc/emacs/cmdargs.texi (Action Arguments): Mention that `-L :...' appends.

* etc/NEWS: Mention this.
2013-11-03 17:36:14 -08:00
Glenn Morris
881db7e0c4 * doc/emacs/cmdargs.texi (Action Arguments): Clarify `-L' a bit. 2013-11-02 16:36:32 -07:00
Glenn Morris
1ba6984e42 * doc/emacs/cmdargs.texi (Action Arguments): Clarify that `-L' prepends 2013-11-02 16:29:01 -07:00
Glenn Morris
76f1a3c314 Remove remaining @refills from doc/*/*.texi files 2013-10-23 13:20:09 -04:00
Glenn Morris
48f73cfbf3 Progress towards allowing installation in directories with whitespace
* Makefile.in (COPYDESTS, write_subdir, install-arch-dep)
(install-arch-indep, install-etcdoc, install-info, install-man)
(install-etc, uninstall): Quote entities that might contain whitespace.

* build-aux/update-subdirs: Handle whitespace in argument.
Check cd return value.

* doc/emacs/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispintro/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispref/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/misc/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* lib-src/Makefile.in ($(DESTDIR)${archlibdir}, need-blessmail, install)
(uninstall): Quote entities that might contain whitespace.

* nt/Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall):
Quote entities that might contain whitespace.
2013-10-23 00:20:57 -07:00
Xue Fuqiao
8715f5a6aa Remove unnecessary @refill. 2013-10-21 06:33:05 +08:00
Glenn Morris
9148ee920e * configure.ac [alpha]: Explicit error in non-ELF case.
* doc/emacs/ack.texi (Acknowledgments): Comment out old alpha stuff.

* lisp/emacs-lisp/authors.el (authors-fixed-entries):
Comment out old alpha stuff.

Fixes: debbugs:15601
2013-10-13 16:01:20 -07:00
Xue Fuqiao
524aabace8 Remove unnecessary @refill. 2013-10-13 18:22:34 +08:00
Glenn Morris
b22d06865b Doc fixes for text-scale-adjust
* lisp/face-remap.el (text-scale-adjust): Doc fix. 

* doc/emacs/display.texi (Text Scale): Update text-scale-adjust details.

Fixes: debbugs:15434
2013-10-12 22:17:42 -07:00
Glenn Morris
8c106d177f Use accented form of some names
* doc/emacs/ack.texi (Acknowledgments):
* doc/emacs/emacs.texi (Acknowledgments):
* doc/lispref/intro.texi (Acknowledgments): Use accented form of some names.

* lisp/emacs-lisp/authors.el (authors-aliases, authors-ignored-files):
Add some entries.
(authors-fixed-entries): Use accented form of name.
2013-10-12 17:31:19 -07:00
Eli Zaretskii
b0904477b3 Fix bug #15557 with spelling in the manual.
ack.texi (Acknowledgments): Fix spelling of Hrvoje Nikֵ¡iִ‡'s name.
2013-10-08 21:42:25 +03:00
Eli Zaretskii
4ed774157d Support menus on text-mode terminals.
src/xterm.h (xw_popup_dialog): Add prototype.
 src/xmenu.c (Fx_popup_dialog): Function moved to menu.c.
 (xmenu_show): Block input here, instead in Fx_popup_menu.
 (xw_popup_dialog): New function, with X-specific bits of popup
 dialogs.
 src/xdisp.c (deep_copy_glyph_row, display_tty_menu_item): New
 functions.
 src/window.c (Fset_window_configuration): Use run-time tests of the
 frame type instead of compile-time conditionals, when menu-bar
 lines are considered.
 src/w32term.h (w32con_hide_cursor, w32con_show_cursor)
 (w32_popup_dialog): New prototypes.
 src/w32menu.c (Fx_popup_dialog): Function deleted.
 (w32_popup_dialog): New function, with w32 specific bits of popup
 dialogs.  Block input here.
 src/w32inevt.c (w32_console_read_socket): Minor change to add
 debugging TTY events.
 src/w32fns.c (show_hourglass): If returning early because the frame
 is not a GUI frame, unblock input.
 src/w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
 (cursorY): New functions.
 src/termhooks.h (cursorX, cursorY): Prototypes of functions on
 WINDOWSNT, macros that call curX and curY elsewhere.
 src/termchar.h (struct tty_display_info) <showing_menu>: New flag.
 src/term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
 specific function to hide and show cursor on a text-mode terminal.
 (tty_menu_struct, struct tty_menu_state): New structures.
 (tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
 (tty_menu_calc_size, mouse_get_xy, tty_menu_display)
 (have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
 (tty_menu_locate, save_and_enable_current_matrix)
 (restore_desired_matrix, screen_update, read_menu_input)
 (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
 (tty_pop_down_menu, tty_menu_last_menubar_item)
 (tty_menu_new_item_coords, tty_menu_show): New functions.
 (syms_of_term): New DEFSYMs for tty-menu-* symbols.
 src/nsterm.h (ns_popup_dialog): Adjust prototype.
 src/nsmenu.m (ns_menu_show): Block and unblock input here, instead
 of in x-popup-menu.
 (ns_popup_dialog): Adapt order of arguments to the other
 *_menu_show implementations.
 (Fx_popup_dialog): Function deleted.
 src/msdos.c (x_set_menu_bar_lines): Delete unused function.
 src/menu.h (tty_menu_show, menu_item_width): provide prototypes.
 src/menu.c (have_boxes): New function.
 (single_keymap_panes): Use it instead of a compile-time
 conditional.
 (single_menu_item): Use run-time tests of the frame type instead
 of compile-time conditionals.
 (encode_menu_string): New function.
 (list_of_items, list_of_panes): Use it instead of ENCODE_STRING
 the macro, since different types of frame need different encoding
 of menu items.
 (digest_single_submenu): Use run-time tests of frame type instead
 of, or in addition to, compile-time conditionals.
 (menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
 (Fx_popup_menu): Detect when the function is called from keyboard
 on a TTY.  Don't barf when invoked on a text-mode frame.  Check
 frame type at run time, instead of compile-time conditionals for
 invoking terminal-specific menu-show functions.  Call
 tty_menu_show on text-mode frames.
 (Fx_popup_dialog): Moved here from xmenu.c.  Test frame types at
 run time to determine which alternative to invoke; support dialogs
 on TTYs.
 src/keyboard.h <Qmouse_movement>: Declare.
 src/keyboard.c <Qmouse_movement>: Now extern.
 <Qecho_keystrokes>: New static variable.
 (read_key_sequence): Accept an additional argument, a flag to
 prevent redisplay during reading of the key sequence.  All callers
 changed.
 (read_menu_command): New function.
 (read_char): When COMMANDFLAG is -2, do not redisplay and do not
 autosave.
 (toolkit_menubar_in_use): New function.
 (make_lispy_event): Use it instead of a compile-time test.
 src/fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
 window-system being available.
 src/editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
 to x-popup-dialog on the frame type, they all now support popup
 dialogs.
 src/dispnew.c (save_current_matrix): Save the margin areas.
 (restore_current_matrix): Restore margin areas.
 (update_frame_with_menu): New function.
 src/dispextern.h (display_tty_menu_item, update_frame_with_menu):
 Add prototypes.
 src/alloc.c (make_save_ptr): Now compiled unconditionally.
 
 lisp/tmm.el (tmm-menubar): Adapt doc string to TTY menus
 functionality.
 lisp/tooltip.el (tooltip-mode): Don't error out on TTYs.
 lisp/menu-bar.el (popup-menu, popup-menu-normalize-position): Moved
 here from mouse.el.
 (popup-menu): Support menu-bar navigation on TTYs using C-f/C-b
 and arrow keys.
 (tty-menu-navigation-map): New map for TTY menu navigation.
 lisp/loadup.el ("tooltip"): Load even if x-show-tip is not available.
 lisp/frame.el (display-mouse-p): Report text-mode mouse as available
 on w32.
 (display-popup-menus-p): Report availability if mouse is
 available; don't condition on window-system.
 lisp/faces.el (tty-menu-enabled-face, tty-menu-disabled-face)
 (tty-menu-selected-face): New faces.

 configure.ac (HAVE_MENUS): Define unconditionally.

 doc/emacs/screen.texi (Menu Bar): Adapt to TTY menus.
 doc/emacs/frames.texi (Frames): Mention menu support on text terminals.
 doc/emacs/files.texi (Visiting): Mention the "File" menu-bar menu.
 doc/emacs/display.texi (Standard Faces): Mention TTY faces for menus.
 
 doc/lispref/keymaps.texi (Defining Menus, Mouse Menus, Menu Bar): Modify
 wording to the effect that menus are supported on TTYs.
 doc/lisprefframes.texi (Pop-Up Menus, Dialog Boxes)
 (Display Feature Testing): Update for menu support on TTYs.

  etc/NEWS: Mention the new features.
2013-10-08 20:49:20 +03:00