1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-29 11:02:01 +00:00
Commit Graph

247 Commits

Author SHA1 Message Date
Karoly Lorentey
626ea340bc Small enhancements.
* lisp/international/mule-cmds.el (set-locale-environment): Use
  server-getenv, not getenv.

* lisp/server.el (server-handle-delete-frame): Add note on possible race
  condition.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-374
2005-07-06 00:42:58 +00:00
Karoly Lorentey
d5dc920668 Merged from miles@gnu.org--gnu-2005 (patch 469)
Patches applied:

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-469
   Update from CVS

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-372
2005-07-05 22:22:24 +00:00
Lute Kamstra
086add1519 Update FSF's address. 2005-07-04 23:32:44 +00:00
Karoly Lorentey
b4bb3cbc7c Merged from miles@gnu.org--gnu-2005 (patch 69, 313-319)
Patches applied:

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-313
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-314
   Merge from gnus--rel--5.10

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-315
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-316
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-317
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-318
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-319
   Update from CVS

 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-69
   Update from CVS

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-347
2005-05-20 17:44:36 +00:00
Juanma Barranquero
027a4b6b3f Replace string-to-int' by string-to-number'. 2005-05-16 11:34:49 +00:00
Karoly Lorentey
97c57fb2b8 Support for ttys with different character locale settings.
* lisp/server.el (server-process-filter): Set locale environment
  variables from client while creating tty frames.

* lisp/faces.el (tty-create-frame-with-faces): Call set-locale-environment.

* lisp/international/mule-cmds.el (set-display-table-and-terminal-coding-system): 
  Add DISPLAY parameter.  Pass it to set-terminal-coding-system.
  (set-locale-environment): Add DISPLAY parameter.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-340
2005-05-03 03:01:09 +00:00
Karoly Lorentey
4a93251142 Fix error when creating tty clients.
* lisp/server.el (server-process-filter): Disable call to configure-display-for-locale.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-323
2005-03-28 04:24:51 +00:00
Karoly Lorentey
4e15f072da Fix line/column number positioning in emacsclient. (Reported by Han Boetes.)
* lisp/server.el (server-process-filter): When processing -position
  command, don't change the request string until the parameters are
  extracted.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-297
2005-02-20 20:15:41 +00:00
Karoly Lorentey
7540c1e0ea On C-x C-c, restrict `save-some-buffers' to the client's buffers. (Reported by Han Boetes.)
* lisp/server.el (server-kill-emacs-query-function): Fix typo in docs.
  (server-save-buffers-kill-display): If emacsclient was started with a
  list of filenames to edit, then offer to save only these buffers.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-291
2005-02-10 21:23:33 +00:00
Karoly Lorentey
bdfec2134d Merged from miles@gnu.org--gnu-2005 (patch 12-13, 79-90)
Patches applied:

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-79
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-80
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-81
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-82
   Merge from gnus--rel--5.10

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-83
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-84
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-85
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-86
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-87
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-88
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-89
   Update from CVS

 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-90
   Update from CVS: man/calc.texi: Add macro for LaTeX for info output.

 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-12
   Merge from emacs--cvs-trunk--0

 * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-13
   Update from CVS

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-290
2005-02-10 20:43:55 +00:00
Kim F. Storm
bf247b6ed0 Change release version from 21.4 to 22.1 throughout.
Change development version from 21.3.50 to 22.0.50.
2005-02-09 15:50:47 +00:00
Karoly Lorentey
6afdd33556 Prevent emacsclient errors when Emacs is compiled without X support.
* lisp/frame.el (make-frame-on-display): Protect condition on
  x-initialized when x-win.el is not loaded.

* lib-src/emacsclient.c (main): Handle -window-system-unsupported
  command.  Doc update.

* lisp/server.el (server-process-filter): Don't try to create an X frame
  when Emacs does not support it.  Improve logging.

* lisp/server.el (server-send-string): New function.
  (server-handle-suspend-tty, server-process-filter): Use it.

* lisp/server.el (server-process-filter, server-unquote-arg)
  (server-quote-arg): Doc updates.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-286
2005-02-04 13:56:51 +00:00
Masatake YAMATO
51b4073ade * server.el (server-process-filter): Suppress `error', too. 2004-12-30 23:14:25 +00:00
Karoly Lorentey
90b404757b Merged in changes from CVS trunk.
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-616
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-617
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-618
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-619
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-620
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-621
   Merge from gnus--rel--5.10

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-622
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-623
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-624
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-625
   Update from CVS

 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-51
   Update from CVS

 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-52
   Update from CVS

 * miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-53
   Merge from emacs--cvs-trunk--0


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-261
2004-10-19 17:00:02 +00:00
Richard M. Stallman
3bb38bc22e (server-unload-hook): Set as a variable with add-hook. 2004-10-17 06:55:07 +00:00
Karoly Lorentey
65f640341c Set ncurses-related environment variables while creating a new tty frame. (Reported by Dan Nicolaescu.)
* lisp/server.el (server-with-client-environment): New macro.
  (server-process-filter): Temporarily set ncurses-related environment
  variables to those of the client while creating a new tty frame.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-257
2004-10-10 18:11:21 +00:00
Karoly Lorentey
6d3a46f779 Small tweaks in server.el.
* lisp/server.el: Doc updates.
  (server-select-display): Remove (unused).
  (server-handle-suspend-tty): Kill the client in case of errors from
  process-send-string.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-255
2004-10-10 16:41:15 +00:00
Masatake YAMATO
9afed9b1fa (server-process-filter): Wrap `process-send-region'
by `condition-case' to guard the case when the pipe to PROC is
closed.
2004-10-08 15:50:59 +00:00
Karoly Lorentey
90376e6f17 Fix typo in server.el (Han Boetes, Ted Morse, Ami Fischman)
* lisp/server.el ("\C-x#"): Fix typo.  (Thanks Han Boetes, Ted Morse and
  Ami Fischman.)


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-235
2004-08-23 08:50:01 +00:00
Karoly Lorentey
b4ca027117 Change binding of C-x C-c to only exit emacsclient, not Emacs itself.
* lisp/server.el (server-save-buffers-kill-display): New function.

* lisp/files.el (ctl-x-map): Change binding of C-x C-c to
  server-save-buffers-kill-display.



git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-232
2004-08-16 19:54:16 +00:00
Karoly Lorentey
c5b0a35529 Don't leave buffers created by nowait clients buried under others (rep. by Dan Nicolaescu).
* lisp/server.el (server-process-filter): Select buffers opened by
  nowait clients, don't leave them buried under others.  (Reported by
  Dan Nicolaescu.)
  (server-visit-files): Return list of buffers created. Update doc.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-212
2004-07-10 20:56:57 +00:00
Karoly Lorentey
b6660415b3 Implemented display ids for multiple emacsclients on the same tty. Plus assorted bugfixes.
* lisp/frame.el (make-frame-on-display): Update doc.
(make-frame): Handle display-id parameter.  Update doc.
(frames-on-display-list): Update for display ids.
(framep-on-display): Ditto.
(suspend-frame): Use display-name, not frame-tty-name.
(selected-display): New function.

* lisp/server.el (server-delete-client): Use delete-display, not delete-tty.
(server-tty-live-p, server-handle-delete-tty): Removed.
(server-handle-delete-frame): Delete tty clients, if needed.
(server-process-filter): Set the display parameter, and use it when appropriate.
(server-handle-suspend-tty): Use the display parameter.
(server-start, server-unload-hook): Removed obsolete delete-tty hook.

* lisp/talk.el (talk): Always use talk-add-display.
(talk-add-tty-frame, talk-handle-delete-tty): Removed.
(talk-handle-delete-frame): New function.
(talk-add-display): Open a new frame only if parameter was not a frame.

* src/dispextern.h (get_display, Fdisplay_tty_type):  New prototypes.
(Fframe_tty_type): Removed.

* src/dispnew.c (init_display): Use Fdisplay_tty_type, not Fframe_tty_type.

* src/frame.c (Qdisplay_id, Qdisplay_live_p): New symbols.
(make_terminal_frame): Get display as a parameter.
(Fmake_terminal_frame): Get/create display here; pass it to
make_terminal_frame.
(Fframe_display): New function.
(Fdelete_frame): Stop if the hook deleted the frame.
(syms_of_frame): Register new stuff.

* src/frame.h (Qdisplay_id, Qdisplay_live_p, make_terminal_frame):
Updated prototypes.

* src/keyboard.c (interrupt_signal): Updated comment.

* src/term.c (Vdelete_tty_after_functions): Removed variable.
(Qframe_tty_name, Qframe_tty_type): Removed.
(next_display_id): New var.
(tty_ring_bell): Don't do anything on suspended frames.
(Ftty_display_color_p, Ftty_display_color_cells): Doc update.
(get_display): New function.
(get_tty_display): Use it.
(get_named_tty_display): Ignore suspended displays.
(Fframe_tty_name): Renamed to Fdisplay_name.  Handle all kinds of
displays.
(Fframe_tty_type): Renamed to Fdisplay_tty_type.
(init_initial_display): Set display name.
(term_init): Allow more displays on the same device.  Set display name.
(Fdelete_tty): Removed.
(delete_tty): Don't run hooks.
(create_display): Set display id.
(delete_display): Free display name.
(Fdelete_display, Fdisplay_live_p, Fdisplay_list): New functions.
(Fsuspend_tty): Call hook with display id.  Doc update.
(Fresume_tty): Refuse to resume when there is already an active display
on the same device.  Call hook with display id.  Doc update.
(syms_of_term): Reflect above changes.

* src/termhooks.h (struct display): Added `id' and `name' members.
(DISPLAY_ACTIVE_P): New macro.

* src/xfns.c (check_x_display_info): Handle display ids.
(Fx_create_frame): Try to get display from `display-id' parameter.

* src/xterm.c (x_term_init): Set display name.
(x_delete_display): Handle the case when `font_table' is NULL.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-207
2004-07-04 04:48:55 +00:00
Karoly Lorentey
fc2040c034 Fix --no-wait in emacsclient (reported by Dan Nicolaescu).
* lib-src/emacsclient.c (main): Don't exit prematurely on --no-wait,
  let Emacs close the connection for us.

* lisp/server.el (server-visit-files): Don't set client-record when nowait.



git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-205
2004-07-03 17:53:57 +00:00
Karoly Lorentey
d6b4b3cfcc Make server-start safe against accidental restarts.
* lisp/server.el (server-start): Ask before restarting if the old server
  still has clients.  Added feedback messages.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-195
2004-06-08 01:33:48 +00:00
Karoly Lorentey
3a2584741d Fix background mode initialization on client tty frames (rep. by Dan Nicolaescu).
lisp/server.el (server-process-filter): Add the client parameter to
the initialization parameters of new frames.
(server-getenv): Use the 'client frame parameter and not
server-clients-with to get the client; server-getenv is called during
frame initialization. (Dan Nicolaescu)

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-179
2004-05-27 17:57:59 +00:00
Karoly Lorentey
fc0dcdef8f Fix server-socket-dir initialization (rep. by Friedrich Delgado Friedrichs).
lisp/server.el (server-socket-dir): Remove premature initialization.
(server-start): Initialize server-socket-dir with the correct uid.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-175
2004-05-25 01:18:01 +00:00
Karoly Lorentey
14de9163b4 Use the remote locale for terminal & keyboard coding system.
lisp/international/mule-cmds.el (set-locale-translation-file-name)
(get-locale-real-name, get-locale-coding-system)
(configure-display-for-locale): New functions.
(set-locale-environment): Factored contents into separate functions.

lisp/server.el (server-process-filter): Call
configure-display-for-locale after creating a new terminal frame.

lisp/startup.el (command-line): Call set-locale-translation-file-name.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-171
2004-05-23 03:56:10 +00:00
Karoly Lorentey
44070fdf1a Fix environment variables on emacsclient frames.
lisp/server.el (server-getenv): Fix string lookup in alist.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-170
2004-05-23 03:37:58 +00:00
Karoly Lorentey
35dfa9b69e Fix fatal error during startup (rep. by Friedrich Delgado Friedrichs)
lisp/loadup.el: Unconditionally preload server.

lisp/server.el: Change server-getenv to a simple defun.

src/Makefile.in (lisp, shortlisp): Added server.elc.
mac/makefile.MPW (LispSource): Ditto.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-164
2004-05-18 19:58:00 +00:00
Karoly Lorentey
2cd1371d9b Fixed environment variable handling during terminal initialization.
lisp/server.el (server-getenv): New inline function.

lisp/term/rxvt.el (rxvt-set-background-mode): Use server-getenv
instead of getenv.
lisp/term/x-win.el (x-initialize-window-system): Ditto.
lisp/term/xterm.el (xterm-rxvt-set-background-mode): Ditto.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-158
2004-05-08 16:20:28 +00:00
Karoly Lorentey
de93c7914c Fix one more case of the previous error.
lisp/server.el (server-delete-client): Added noframe parameter.
(server-handle-delete-frame): Use it.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-149
2004-04-19 14:21:37 +00:00
Karoly Lorentey
6ed9e43af1 Fix error on deleting an emacsclient terminal (Dan Nicolaescu).
lisp/server.el (server-delete-client): Check that the buffer is live
before switching to it.  Also, check that the tty display still has
live buffers before deleting it.  
(server-handle-delete-frame): Don't do anything if the frame was on a
tty device (reported by Dan Nicolaescu).


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-148
2004-04-19 14:16:10 +00:00
Karoly Lorentey
540216761e Fix frame parameter handling in server.el.
lisp/server.el (server-process-filter): Work around make-frame
frame parameter bogosity by using modify-frame-parameters.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-145
2004-04-18 02:24:18 +00:00
Karoly Lorentey
9002956fd8 Another server.el overhaul.
lib-src/emacsclient.c (xstrdup): New function.
(quote_argument): Use xmalloc, not malloc.
(main): Send environment variable values.

lisp/server.el (server-clients): Documentation update.
(server-ttys, server-frames): Removed.
(server-client, server-client-get, server-client-set)
(server-clients-with, server-add-client)
(server-delete-client): New functions.
(server-sentinel, server-handle-suspend-tty)
(server-handle-delete-tty, server-handle-delete-frame)
(server-start, server-process-filter, server-visit-files)
(server-buffer-done, server-kill-buffer-query-function)
(server-kill-emacs-query-function, server-switch-buffer): Use them.
(server-log): Handle both kinds of client references.
(server-start): Set up all hooks here.
(server-process-filter): Cleanup.  Store version in client.
Handle -env commands for passing environment variable values.
(server-buffer-done): Don't close clients that were created bufferless.
(server-switch-buffer): Only look at frameless clients.
Don't switch away from current buffer if there is no next-buffer.
(server-unload-hook): Remove frame/tty hooks, too.

lisp/server.el (server-quote-arg, server-unquote-arg)
(server-process-filter, server-kill-buffer-query-function)
(server-kill-emacs-query-function): Doc update.
(server-buffer-done, server-switch-buffer): Use buffer-live-p, not
buffer-name.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-143
2004-04-18 01:34:11 +00:00
Stefan Monnier
5b421c8154 (server-process-filter): Delete temp frame. 2004-03-19 00:50:48 +00:00
Karoly Lorentey
6114b889a2 Merged in changes from CVS HEAD
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-146
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-147
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-148
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-149
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-150
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-151
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-152
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-153
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-154
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-155
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-156
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-157
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-158
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-118
2004-03-16 20:27:22 +00:00
Stefan Monnier
03ae35cfae (server-name): New var.
(server-socket-dir): New var to replace server-socket-name.
(server-start): Use them.
2004-03-11 18:35:20 +00:00
Karoly Lorentey
0b0d3e0bce Implemented suspending of emacsclient frames.
lib-src/emacsclient.c (quote_file_name): Renamed to quote_argument.
(unquote_argument, handle_sigcont, handle_sigtstp): New functions.
(out, in): New global variables for communicating with the Emacs process.
(init_signals): Set up handlers for SIGCONT, SIGTSTP and SIGTTOU.
(main): Changed out and in to global variables.  Prepend `-eval' or
'-file' to each argument.  Use fsync to force sending the strings to Emacs.
Removed obsolete -bad-version code.  Support the -suspend command.
Cleaned up newline handling.

lisp/frame.el (suspend-frame): New function.
Substitute key definition of suspend-emacs with suspend-frame.

lisp/server.el (server-log): Cosmetic change in log format.
(server-handle-delete-tty, server-handle-delete-frame): Added logging.
(server-handle-suspend-tty, server-quote-arg): New functions.
(server-start): Install server-handle-suspend-tty.
(server-process-filter): Reorganized source code for clarity.
Implemented -resume, -suspend and -ignore commands.

lisp/term/x-win.el (x-initialize-window-system): Don't change the
binding of C-z.

src/cm.c: Replaced TTY_INPUT, TTY_OUTPUT, TTY_TERMSCRIPT calls with
their macro expansion.
src/dispnew.c: Ditto.
src/frame.c: Ditto.
src/keyboard.c: Ditto.
src/sysdep.c: Ditto.

src/keyboard.c (tty_read_avail_input): Don't read if the terminal is
suspended.
src/sysdep.c (discard_tty_input, init_sys_modes, reset_sys_modes): Ditto.
src/term.c (tty_set_terminal_modes, tty_reset_terminal_modes): Ditto.

src/term.c (Vsuspend_tty_functions, Vresume_tty_functions): New hooks.
(syms_of_term): Defvar them.
(term_init): Don't allow opening a new frame on a suspended tty device.
(Fsuspend_tty, Fresume_tty): New functions.
(syms_of_term): Defsubr them.

src/termchar.c (struct tty_display_info): Update documentation of
input and output.
(TTY_INPUT, TTY_OUTPUT, TTY_TERMSCRIPT): Removed.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-105
2004-02-28 01:23:39 +00:00
Karoly Lorentey
a9298135d8 Verify the version of Emacsclient.
lib-src/emacsclient.c (main): Send the version number of emacsclient
to the Emacs process, and exit with error if Emacs does not accept it.

lisp/server.el (server-with-errors-reported): Removed.
(server-process-filter): Cleaned up error handling.
Compare the version of emacsclient with emacs-version; 
signal an error if they do not match.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-84
2004-02-20 01:22:10 +00:00
Karoly Lorentey
77134727c9 Added -w option to emacsclient for opening a new X frame.
lib-src/emacsclient.c (window_system): New variable.
(frame): Renamed to tty for consistency with the option name.
(longopts, print_help_and_exit): Added -w option. (Suggested by Ami
Fischman <ami at fischman dot org>.
(decode_options): Initialize display to $DISPLAY.  Handle -w option.
(main): Implement the -w option.  Changed to a more elaborate protocol
between Emacs and emacsclient, in preparation to suspend support.

lisp/server.el (server-frames): New variable.
(server-handle-delete-frame): New function.
(server-start): Add it to delete-frame-functions.
(server-select-display): Don't make the new frame invisible.
(server-with-errors-reported): New macro for brevity.
(server-process-filter): Implement the "-window-system" command.
Use server-with-errors-reported.  Fixed regexp for +line:column syntax.
Use the new protocol.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-83
2004-02-19 23:55:51 +00:00
Karoly Lorentey
d3a6748c5b Merged in changes from CVS HEAD
Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-57
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-58
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-59
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-60
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-61
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-62
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-63
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-64
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-65
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-66
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-67
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-68
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-69
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-71
2004-02-02 19:19:08 +00:00
Stefan Monnier
92c7831bff (server-socket-name): Don't use the hostname in the
socket name since /tmp is local to the host anyway.
2004-01-27 23:08:29 +00:00
Karoly Lorentey
114a8b8cab Numerous bugfixes and small improvements.
lisp/bindings.el (mode-line-frame-identification): Use %T, not %F.

lisp/faces.el (x-create-frame-with-faces): Added
frame-creation-function parameter.
(tty-create-frame-with-faces): Ditto.

lisp/frame.el (frame-creation-function): Make it frame-local.
(select-frame-set-input-focus): Use the window-system function, not
the variable.

lisp/server.el (server-handle-delete-tty): Make sure the client
process is removed from server-clients after the delete-process call.
It seems that the sentinel is not called.  Added docs.
(server-process-filter): Immediately add the client to server-clients
when a new termcap frame is created.  Fixed a case of `not' called
with two parameters.  Ignore errors while sending the evaluation
result back to the client.
(server-kill-buffer-query-function): Don't ask the user if the server
process is already dead.

lisp/term/x-win.el: Don't change mode-line-frame-identification.

src/buffer.c (syms_of_buffer): Added %T to the docs of mode-line-format.

src/dispnew.c (init_display): Increment the reference count of the new
termcap display.

src/frame.c (make_terminal_frame): Set the old top frame's visibility
to `obscured'.
(Fmake_terminal_frame): Look at the current termcap display's name,
not just the similar frame parameter.  Try to get the type from the
current display first, and only then from Vdefault_frame_alist.

src/keyboard.c (handle_interrupt): New function to separate the signal
handling from C-g processing.
(interrupt_signal): Call handle_interrupt to do the real work.
(kbd_buffer_store_event): Use handle_interrupt instead of interrupt_signal.
(cmd_error_internal): Use FRAME_INITIAL_P instead of ugly hacks.

src/termhooks.h (initial_display): New declaration.

src/xdisp.c (decode_mode_spec): Added '%T' (termcap-only frame name).

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-49
2004-01-10 12:56:22 +00:00
Karoly Lorentey
4d553a13ab Portability fixes (now it compiles & runs fine on Solaris).
lib-src/emacsclient.c: Removed tty proxy kludge.  Emacs should just
use the same terminal as emacsclient.
(ec_get_tty, ec_set_tty, master, pty_name, old_tty, tty, old_tty_valid)
(tty_erase_char, quit_char, flow_control, meta_key, _sobuf, init_tty)
(window_change, reset_tty, init_pty, copy_from_to)
(pty_conversation): Removed.
(window_change_signal): Just forward the signal to Emacs, don't do
anything else.
(init_signals): Don't set handlers for SIGHUP & SIGINT.
(strprefix): New function.
(main): Don't touch the terminal, simply tell its name to Emacs.

lisp/server.el (server-frames): Changed name and semantics to server-ttys.
(server-tty-live-p): New function.
(server-sentinel): Delete the whole tty, not just the frame.
(server-handle-delete-frame): Removed.
(server-handle-delete-tty): New function. Close the client connection if
the tty is deleted.
(server-start): Clean up server-ttys, not server-frames.  Set up
delete-tty-after-functions.
(server-process-filter): Set up server-ttys, not server-frames.
Updated protocol for sending our pid to emacsclient.
(server-buffer-done): Don't delete the client process directly, delete
the tty instead, and rely on the delete-tty hook to close the
connection.  Otherwise the terminal could be left in a bad state.

src/cm.c (cmputc): Don't abort on write errors.

src/indent.c: #include <stdio.h>, for termchar.h.
src/window.c: Ditto.
src/xfaces.c: Ditto.

src/sysdep.c (init_sigio, reset_sigio, request_sigio)[!SIGIO]
(unrequest_sigio)[!SIGIO]: If SIGIO is not supported, don't do
anything. (For Solaris.)
(init_sys_modes): Moved tty_set_terminal_modes call back to here,
disable window system check.
(reset_sys_modes): Reset the terminal even if X is running.

src/term.c (Vdelete_tty_after_functions): New variable.
(syms_of_term): Initialize it.
(Fdelete_tty): Updated docs.
(delete_tty): Run delete-tty-after-functions.
(term_init): Removed tty_set_terminal_modes call.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-35
2004-01-03 08:31:14 +00:00
Karoly Lorentey
819b8f00ed A few more bugfixes and new features.
(Sigh.)  I obviously need to remember to separate individual changes
to multiple commits.

src/emacsclient.c: Improved error handling.
(decode_options): Changed frame option (again) from -f to -t.
(print_help_and_exit): Ditto.
(copy_from_to): Check EINTR after write, not EAGAIN.  Removed SIGIO hack.
(pty_conversation): Handle errors transmitted through the socket.
Handle pty errors by not reading from it anymore.
(main): Restore correct errno after socket_status failed.  Send -tty
on -t, not -pty.

lisp/server.el (server-process-filter): Watch -tty, not -pty.
Use make-frame-on-tty instead of make-terminal-frame.
Don't set newframe to t if make-frame-on-tty failed.
Don't delete frames here.  Print correct message when there are no
files to edit, but a new frame was requested.
(server-sentinel): Delete the frame after the process.
(server-handle-delete-frame): New function for delete-frame-functions.
(server-start): Add server-handle-delete-frame to delete-frame-functions.
(server-buffer-done): Don't delete frames here.

src/alloc.c (mark_ttys): Add prototype.
(Fgarbage_collect): Call mark_ttys.

src/emacs.c: (shut_down_emacs): Don't flush stdout before
reset_sys_modes().

src/process.c (add_keyboard_wait_descriptor_called_flag): Removed.
(add_keyboard_wait_descriptor): Removed stdin hack.

src/sysdep.c: Unconditionally include sysselect.h.
(old_fcntl_flags): Changed to an array.
(init_sigio, reset_sigio): Use it.
(narrow_foreground_group, widen_foreground_group): Use setpgid, not
setpgrp.
(old_fcntl_owner): Changed to an array.
(init_sys_modes, reset_sys_modes): Use it.  Fix fsync() and reset_sigio() calls.
src/term.c (Qframe_tty_name, Qframe_tty_type): New variables.
(syms_of_term): Initialize them.
(Fframe_tty_name, Fframe_tty_type): New functions.
(term_init): Call add_keyboard_wait_descriptor().
(Fdelete_tty): New function.
(delete_tty): Call delete_keyboard_wait_descriptor().
(get_current_tty): Removed.
(mark_ttys): New function.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-28
2003-12-31 05:09:29 +00:00
Karoly Lorentey
16c290d8c1 Major bugfixes and slight enhancements.
src/dispextern.h (get_tty_size, tabs_safe_p, init_baud_rate): Update
prototypes.

src/dispnew.c (window_change_signal): Update call to get_tty_size.
src/frame.c (Fmake_terminal_frame): Ditto.
src/keyboard.c (Fsuspend_emacs): Ditto.

src/sysdep.c: Eliminate tty_outputs, wherever possible.  (The
exceptions are init_sys_modes and reset_sys_modes, which need access
to tty-local parameters).
(init_baud_rate): Change tty_output parameter to a simple file descriptor.
(narrow_foreground_group, widen_foreground_group): Ditto.
(tabs_safe_p, get_tty_size): Ditto.
(init_sys_modes): Update narrow_foreground_group invocation.
(reset_sys_modes): Update widen_foreground_group invocation.
(request_sigio)[!FASYNC && STRIDE]: Fix function signature.

src/term.c (delete_tty): Only close output file handle if it is
different from input.  Re-enable freeing of Wcm.
(term_init): Update get_tty_size, tabs_safe_p and init_baud_rate
invocations.

lib-src/emacsclient.c (here): Renamed to frame.
(longopts): Change --here to --frame.  The -h short option may be
confused with --help.
(decode_options, print_help_and_exit): Update to reflect above changes.
(main): Ditto.

lisp/server.el (server-start): Fix frame-live-p call syntax.
(server-process-filter): Handle 'emacsclient -f' without file
arguments.  Don't return any values to emacsclient when 'emacsclient
-f -e'.
(server-switch-buffer): Prevent infinite recursion when there are no
files to edit.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-27
2003-12-30 19:27:57 +00:00
Karoly Lorentey
22de1e79e7 Delete server frames on server restart.
lisp/server.el (server-start): Delete any remaining opened frames of
the previous server.
(server-sentinel, server-process-filter): Force deleting the frame.
(server-buffer-done): Ditto.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-25
2003-12-30 17:42:02 +00:00
Karoly Lorentey
b2af72d2f0 Make sure secondary frames are deleted when emacsclient quits.
lisp/server.el (server-sentinel): Delete frame if alive.  Fix delq
invocation on server-frames.  
(server-process-filter, server-buffer-done): Fix delq invocation on
server-frames.

src/cm.c (cmputc): Abort on write error, see what happens.

src/keyboard.c (read_avail_input): Do delete_tty on read errors.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-21
2003-12-29 08:28:35 +00:00
Karoly Lorentey
0a1258976b Bugfix festival.
lib-src/emacsclient.c (main_argc, main_argv): New variables.
(main): Initialize them.
(fail): Use them.
(window_change, copy_from_to): Don't kill if emacs_pid is zero.
(pty_conversation): Watch the command socket, too.  Read emacs_pid
here.  Emacs and emacsclient could deadlock if Emacs tried to do a
reset_sys_modes before sending its pid.

lisp/server.el: Automatically delete the client frame when done editing.
(server-frames): New variable.
(server-process-filter, server-sentinel, server-buffer-done): Use it.
(server-process-filter): Do a redisplay before evaluating other
parameters.  (Prevents "emacsclient -h -e '(delete-frame)'" from
messing up the system.

src/dispextern.h: Update prototypes.

src/dispnew.c (window_change_signal): Do nothing if !term_initted.
(init_display): Set the frame size from the tty data after term_init.

src/emacs.c (main): Make sure things that init_sys_modes needs are 
initialized before init_display (which calls init_sys_modes now).
(sort_args): Use xfree, not free.
(shut_down_emacs) [!EMACS_HAVE_TTY_PGRP]: Use reset_all_sys_modes
instead of reset_sys_modes.

src/frame.c (make_terminal_frame): Sigh. Move terminal initialization
back to the middle of frame setup.  Handle errors by making sure that
the delete_tty() called from term_init() will see and delete this
frame.
(Fdelete_frame): Kill the frame before calling delete_tty().  Fix
condition for tty deletion.

src/keyboard.c (Fset_input_mode): Use reset_sys_modes on the current
terminal only.

src/lisp.h: Remove duplicate prototypes.

src/msdos.c (croak): use reset_all_sys_modes().

src/sysdeps.c (init_baud_rate): Added tty parameter, use it instead of CURTTY.
(child_setup_tty): Reset sigio on stdin, not CURTTY().
(reset_sigio): Added fd parameter, put explicit fcntl there.
(request_sigio, unrequest_sigio)[FASYNC]: Simply block/unblock the
SIGIO signal, don't touch the file params.  There are multiple ttys
now, and we can't disable the SIGIO from emacsclient.
(get_tty_size)[VMS]: Use tty_out instead of CURTTY().
(reset_sys_modes): Don't call cursor_to, clear_end_of_line; call
cmgoto and tty_clear_end_of_line instead.  The frame may already be
dead.  Updated reset_sigio call.

src/term.c (clear_and_of_line): Separate tty-dependent stuff to
tty_clear_end_of_line() for reset_sys_modes.
(tty_clear_end_of_line): New function.
(term_init): Added frame parameter, don't use selected_frame.
Set the frame's output_data.tty value (in case there is an error
later).  Set the frame size in Wcm, not in the frame.  Only free the
termcap buffer if there is a termcap-related error.  Call
init_sys_modes last, not first.
(deleting_tty): New variable.
(delete_tty): Use it for handling recursive calls.  Free deleted tty,
except its Wcm (there is still a dangling reference somewhere).

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-19
2003-12-29 07:16:26 +00:00
Karoly Lorentey
8303ba32ba Implemented automatic deletion of terminals.
lisp/server.el (server-process-filter): Switch to the new terminal frame.

src/frame.c (Fdelete_frame): Delete the tty if this was its the last frame.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-12
2003-12-27 13:55:54 +00:00
Karoly Lorentey
fca177d467 Fully eliminated global tty state variables.
lib-src/emacsclient.c (main.c): Fix error message.

lisp/frame.el (make-frame-on-tty): New function.

lisp/server.el (server-process-filter): Notify emacsclient if there
was on error during evaluation.

src/cm.c: Fix remaining cases of direct Wcm references.

src/dispextern.h: Updated prototypes.

src/dispnew.c (Fredraw_frame): Fix set_terminal_modes call.
(init_display): Remove reference to meta_key.

src/frame.c (make_terminal_frame): Renamed first parameter to
tty_name.  Call term_init before creating the frame.
(Fmake_terminal_frame): Look up the `tty' and `tty-type' frame
parameters from the currently selected terminal before the global
default.
(Fdelete_frame): Make sure that the new selected frame is live.

src/keyboard.c (meta_key): Moved to struct tty_output.
(read_avail_input): Fix C syntax.  Update references to meta_key.
(Fsuspend_emacs): pass current tty to init_sys_modes via
record_unwind_protect.
(Fset_input_mode): Update references to meta_key.
(Fcurrent_input_mode): Ditto.

src/sysdep.c (init_sys_modes): Updated old_tty and meta_key
references.  Don't call set_terminal_modes, it needs termcap strings.
(reset_sys_modes): Call tty_reset_terminal_modes instead of
reset_terminal_modes.  Updated old_tty references.

src/term.c: Massive updates throuout the file.
(TS_*, TN_*): Moved to struct tty_output.
(RPov, delete_in_insert_mode se_is_so, costs_set, insert_mode): Ditto.
(standout_mode, specified_window, tty_cursor_hidden): Ditto.
(tty_set_terminal_modes, tty_reset_terminal_modes): New functions.
(turn_on_insert, turn_off_insert): Added tty parameter.
(turn_on_highlight, turn_off_highlight, toggle_highlight): Added tty parameter.
(tty_hide_cursor, tty_show_cursor): Ditto.
(background_highlight, highlight_if_desired): Ditto.
(tty_capable_p): Changed first parameter to tty_output.
(term_init): Make sure top_frame is initialized.  Don't exit on errors
if this would have been a secondary terminal.  Call set_terminal_modes
on the end.
(delete_tty): New function.
(delete_tty_1): New function.
(print_all_frames): New function, marginally useful for debugging.

src/termchar.h (struct tty_output): Changed old_tty to be a pointer.
Removed old_tty_valid member.  Added tty-specific variables from term.c.

src/xfaces.c (Ftty_supports_face_attributes_p): Update for new
tty_capable_p.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-9
2003-12-27 10:00:19 +00:00
Karoly Lorentey
6548cf002c Full support for multiple terminal I/O (with some rough edges).
lib-src/emacsclient.c (emacs_pid): New variable.  
(window_change): Forward the SIGWINCH signal to the Emacs process
after copying the size parameters to the proxy terminal.
(copy_from_to): New parameter (sigio), kill Emacs with SIGIO if it is
nonzero.
(main): Set emacs_pid.

lisp/server.el (server-process-filter): Send the pid of Emacs to emacsclient.

src/cm.c: Added tty parameters to all functions and all Wcm macro calls.

src/cm.h: Added tty parameters to all macros.   Updated function prototypes.
(Wcm): Moved to struct tty_output.

src/dispextern.h: Updated function prototypes.

src/dispnew.c: Added tty parameters to all Wcm macro calls.
(do_switch_frame): Make old frame obscured, not invisible, to solve
problems with other-frame.
(Wcm): Moved to struct tty_output.

src/keyboard.c (read_avail_input): Select the frame corresponding to
the tty that was read.  Slight rearrangement of tty loop.

src/lisp.h (tabs_safe_p): Removed duplicate prototype.

src/sysdep.c (hft_init, hft_reset): Added tty_output parameter.
(discard_tty_input): Discard input from all ttys on APOLLO, too.
Whatever it is.
(narrow_foreground_group, widen_foreground_group): Added tty parameter
(not really useful, the functions only work on the controlling tty.)
(tabs_safe_p): Added tty parameter.

src/term.c Added tty parameters to all Wcm macro calls.
Standardised updating_frame vs. selected frame and tty_output access.
(term_init): Allocate Wcm.
(syms_of_term): Provide the `multi-tty' feature.

src/termchar.h (struct tty_output): Added Wcm.

src/xdisp.c (try_window_id): Make sure we use the tty device
corresponding to the current frame.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-8
2003-12-27 01:12:57 +00:00
Karoly Lorentey
9628b8878f lib-src/emacsclient.c: Implemented --here option (open a new Emacs tty). Needs more work.
(here): New variable.
(decode_options): Use it.
(ec_get_tty, ec_set_tty, init_tty, window_change, hang_up_signal): New functions.
(window_change_signal, init_signals, reset_tty, init_pty, copy_from_to): Ditto.
(pty_conversation): Ditto.
(main): Use them.
(master, pty_name, old_tty, tty, old_tty_valid, tty_erase_char): New variables.
(flow_control, meta_key, _sobuf, in_conversation, quit_conversation): Ditto.

lisp/server.el (server-process-filter): Added support for opening a new terminal frame.

dispextern.h (get_frame_size): Renamed to get_tty_size, added tty_output parameter.

dispnew.c (Fredraw_frame): fflush the current terminal instead of stdout.
(direct_output_for_insert, direct_output_forward_char, update_frame_1): Ditto.
(Fding, bitch_at_user): Ditto.
(update_frame_1): Count pending output for current terminal instead of stdout.
(window_change_signal): Resize all terminals.
(change_frame_size): Don't resize all terminals to the same size.

frame.c (Vterminal_frame): Removed.
(syms_of_frame): Removed declaration of Vterminal_frame.
(make_terminal_frame): Set the top frame of the terminal to the new frame.
(Fmake_terminal_frame): Get a new frame size from get_tty_size, don't copy it.
(do_switch_frame): Handle terminal frame visibility.
(next_frame, prev_frame): Skip over frames on different terminals.

frame.h (Vterminal_frame): Removed.

keyboard.c (input_fd): Removed.
(read_avail_input): Removed first argument from read_socket_hook.
Try to read from each available tty, until one succeeds.
(Fsuspend_emacs): Don't suspend if there are multiple terminals.

lisp.h (get_frame_size): Removed superflous declaration.

xterm.c (Xtread_socket): Removed first parameter.
macterm.h (XTread_socket): Ditto.
w32inevt.c (w32_console_read_socket): Ditto.
w32term.c (w32_read_socket): Ditto.

sysdep.c (input_fd): Removed.
(change_input_fd): Removed.
(discard_tty_input): Discard pending input on _all_ input descriptors.
(stuff_char, tabs_safe_p): Use current terminal instead of input_fd.
(init_baud_rate, request_sigio, unrequest_sigio): Ditto.
(init_sys_modes, reset_sys_modes): Ditto.
(narrow_foreground_group, widen_foreground_group): Use stdin.
(init_sys_modes, reset_sys_modes): otty parameter renamed to tty_out.
(get_frame_size): Renamed to get_tty_size, added tty_out parameter.

term.c (read_socket_hook): Removed first parameter.
(clear_end_of_line): Use updating_frame, if possible.
(write_glyphs, insert_glyphs, ins_del_lines): Ditto.
(term_init): Renamed get_frame_size to get_tty_size.

termchar.h (struct tty_output): New entries: top_frame,
previous_terminal_frame.

termhooks.h (read_socket_hook): Removed first parameter.

window.c (init_window_once): Removed reference to Vterminal_frame.

xdisp.c (previous_terminal_frame): Moved to struct tty_output.
(redisplay_internal): Updated to use previous_terminal_frame in tty_output.
Allow for simultaneous refresh of multiple ttys.


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-5
2003-12-26 04:24:54 +00:00
Miles Bader
ab5796a9f9 Add arch taglines 2003-09-01 15:45:59 +00:00
John Paul Wallington
60f8ea5349 (server-start): Check `server-process' is non-nil
before killing it to avoid killing current buffer's process.
2003-07-25 12:16:18 +00:00
Stefan Monnier
e5576936b9 (server-start): Use letf. 2003-04-12 19:05:41 +00:00
Stefan Monnier
724629d2c2 (server-socket-name): Use new safe location for socket.
(server-ensure-safe-dir): New fun.
(server-start): Use it.
(server-process-filter): Re-enable the -eval feature.
2003-04-12 19:04:11 +00:00
Stefan Monnier
3f7ef08ebd (server-previous-strings): Remove.
(server-process-filter): Use (process-get 'previous-string) instead.
(server-sentinel): Remove code made superfluous.
2003-02-10 21:44:24 +00:00
Dave Love
33186f32d8 (server-window): Customize.
(server-mode): New.
(server-unload-hook): Call server-start.
2003-01-15 17:49:32 +00:00
John Paul Wallington
64f511342e (server-process-filter): Use `minibufferp' to test
whether we are inside a minibuffer.
(server-process, server-kill-new-buffers): Doc fixes.
2003-01-13 16:44:07 +00:00
Richard M. Stallman
cf1175df2a (server-process-filter): Comment out -eval.
Don't switch buffers if inside isearch or minibuffer.
2003-01-13 08:04:17 +00:00
Stefan Monnier
408784a7d5 (server-sentinel): Kill buffers if applicable.
(server-temp-file-p): Make arg optional.
(server-done): Use it to simplify.
(server-switch-buffer): If server-window is a function, use it.
2002-11-02 05:29:13 +00:00
Richard M. Stallman
90ee5627ad (server-switch-buffer): Say when no server buffers remain. 2002-10-29 18:17:46 +00:00
Stefan Monnier
15d40fa454 (server-socket-name): Always use /tmp and non-qualified hostname. 2002-09-27 22:06:02 +00:00
Stefan Monnier
44a56b29e7 (server-select-display): New function.
(server-process-filter): Add support for `-display' and `-eval' args.
(server-visit-files): Use save-current-buffer, push, and dolist.
Add server-kill-buffer to kill-buffer-hook.
(kill-buffer-hook): Don't modify globally.
(server-switch-buffer): Be a bit more careful with multiple displays.
2002-09-27 17:43:29 +00:00
Stefan Monnier
0c851d7872 Use built-in network primitives.
(server-program, server-previous-string): Remove.
(server-previous-strings): New var.
(server-socket-name): New var.
(server-log): Minor change to the output format.
(server-sentinel): Clean up global state when a client disconnects.
(server-unquote-arg): New fun.
(server-start): Use server-socket-name and make-network-process.
(server-process-filter): Now talks to the clients directly.
Normalize file name after unquoting and decoding.
(server-buffer-done): Just close the connection.
(server-switch-buffer): Handle the case where all windows are
dedicated or minibuffers.
2002-09-25 19:54:13 +00:00
Stefan Monnier
ca0c725020 (server-done): Fix harmlessly wrong arg to save-buffer.
(server-switch-buffer): Only select a different window if
next-buffer is non-nil.  Don't switch in a dedicated window.
If next-buffer is already displayed, reuse that window.
2002-09-18 12:19:57 +00:00
Stefan Monnier
8b3e840e95 (server-log): Add `client' arg.
(server-start): Don't bother canceling the sentinel.
(server-process-filter): Use replace-regexp-in-string and
handle the new &n quoting.  Use push.  Use server-log's new arg.
Don't output the C-x # message if `nowait'.
(server-buffer-done): Use server-log's new arg.
2002-09-18 02:10:18 +00:00
Richard M. Stallman
6b98185f8b (server-process-filter): Simplify code.
(server-goto-line-column): New function.
(server-visit-files): Use server-goto-line-column.
Offer to revert only if file has changed.
2002-08-15 20:13:48 +00:00
Dave Love
df4e8a1129 (server-unload-hook): New function. 2001-12-18 16:42:38 +00:00
Stefan Monnier
1cd04440b5 (server-process-filter): Run pore/post-comment-hook
before/after visiting the file.
2001-11-15 12:19:08 +00:00
Richard M. Stallman
ed9ae328c1 (server-edit, server-done): Doc fix. 2001-11-13 03:14:23 +00:00
Richard M. Stallman
4dd04714eb (server-buffer-done): Test of server-existing-buffer was backwards.
(server-existing-buffer): Doc fix.
2001-11-11 17:56:23 +00:00
Gerd Moellmann
35f01a9505 (server-switch-buffer): Use get-window-with-predicate. 2001-09-07 11:35:49 +00:00
Stefan Monnier
0582471880 (server-visit-files): Fix variable name typo. 2001-07-20 22:46:18 +00:00
Gerd Moellmann
8c49357098 (server-visit-files): Handle the case the specified
column number is <= 0.

(command-line-1): Add support for +LINE:COLUMN
command line argument.

(server-process-filter, server-visit-files): Add
support for +LINE:COLUMN style emacsclient calls.
2001-07-17 10:55:28 +00:00
Pavel Janík
5553563924 Some fixes to follow coding conventions in files maintained by FSF. 2001-07-15 16:15:35 +00:00
Eli Zaretskii
b5a9911c41 (server-process, server-buffer-clients): Doc fix.
From Pavel Janik <Pavel@Janik.cz>.
2001-06-10 08:45:41 +00:00
Gerd Moellmann
92a6563f8d (server-visit-files): Set server-existing-buffer
correctly.
(server-visit-files): Run server-visit-hook after going to
line 1 so that the hook can set point as it sees fit.
2001-04-09 14:29:56 +00:00
Stefan Monnier
39b557e891 (server-switch-buffer): Only switch window if the current one is dedicated. 2001-02-22 20:14:45 +00:00
Gerd Moellmann
8363063ec7 (server-switch-buffer): Choose a window on a visible
frame.
2000-12-21 15:57:01 +00:00
Gerd Moellmann
3d2a0e0b7b (server-buffer-done): Bury the buffer before
killing it.
2000-12-18 17:01:16 +00:00
Gerd Moellmann
0f5f7c3eb6 (server-visit-files): Push files on file-name-history. 2000-12-07 13:53:21 +00:00
Gerd Moellmann
c6a117f07b (server-kill-new-buffers): New user option.
(server-existing-buffer): New buffer-local variable.
(server-visit-files): When using an existing buffer, set
server-existing-buffer to t.
(server-buffer-done): If server-kill-new-buffers is t, kill the
buffer, unless it was already present before visiting it with
Emacs server.
2000-08-21 15:26:01 +00:00
Gerd Moellmann
6d4dd88504 (server-switch-buffer): Use some-window instead of
cycling through windows with next-window.
2000-07-03 09:13:42 +00:00
Karl Heuer
0c40a645af (server-process-filter): If a client visits no buffers,
close it immediately before recording it.
1999-08-16 03:15:11 +00:00
Kenichi Handa
6b7430a8ac (server-start): Set coding system for the server
process to raw-text.
(server-process-filter): Decode file names if necessary.
1999-03-13 00:21:24 +00:00
Richard M. Stallman
599f9a5c4c (server-buffer-done): Bind server-kill-buffer-running
around places that might kill the buffer.
Do something reasonable if server-done-hook kills the buffer.
(server-kill-buffer-running): Doc fix.
(server-kill-buffer): Do nothing unless server-buffer-clients.
(server-done): Doc fix.

(server-buffer-done): Test of for-killing was backwards.
1998-05-05 00:39:35 +00:00
Richard M. Stallman
ab1c7f3527 Customized. 1997-08-18 20:01:25 +00:00
Richard M. Stallman
fb873cfcb6 (server-kill-buffer): Prevent infinite recursion.
(server-kill-buffer-running): New variable.
1997-05-31 00:31:40 +00:00
Richard M. Stallman
e4874521bb Comment change. 1997-05-27 15:32:03 +00:00
Richard M. Stallman
1da54e584e (server-kill-buffer): Act only when there is a server process. 1997-05-14 18:42:57 +00:00
Richard M. Stallman
b392bac9b9 (server-buffer-done): New arg FOR-KILLING.
(server-kill-buffer): New fn, to inform clients when buffer is killed.
1997-05-10 00:37:24 +00:00
Richard M. Stallman
ffdd27965e (server-done): If buffer visits no file, don't offer save. 1997-04-13 06:12:34 +00:00
Richard M. Stallman
8226e01e77 (server-process-filter): Let-bind `pos'. 1997-01-02 00:37:12 +00:00
Richard M. Stallman
c1148e39cc (server-start): Don't delete ~/.emacs-server.
Instead, delete the names emacsserver really uses
if compiled with SERVER_HOME_DIR.
1996-12-30 20:40:27 +00:00
Richard M. Stallman
b59a6343c2 (server-process-filter): Quote with &, not \. 1996-09-02 17:43:56 +00:00
Richard M. Stallman
349e3f8210 (server-process-filter): Undo the quoting with
backslashes that emacsclient now does for special characters.
Delete some debugging code accidentally left in.
1996-09-02 00:03:28 +00:00
Richard M. Stallman
dfa35e6b44 (server-visit-files): New argument NOWAIT.
Don't record on server-buffer-clienjts if NOWAIT.
(server-process-filter): Pass NOWAIT arg based on data from server.
Don't record in server-clients if NOWAIT.
1996-08-28 23:26:13 +00:00
Richard M. Stallman
ee7226e542 (server-process-filter): Use command-line-normalize-file-name. 1996-02-28 23:32:18 +00:00
Richard M. Stallman
a478a9ce32 (server-process-filter): Don't collapse // at start of file name. 1996-02-28 00:29:43 +00:00
Richard M. Stallman
126b6f74c1 (server-process-filter): In file name, collapse multiple slashes to one. 1996-01-26 23:57:39 +00:00
Karl Heuer
26544100fa (server-process-filter): Pass proper format string to message. 1996-01-25 00:56:54 +00:00
Erik Naggum
b578f267af Update FSF's address. 1996-01-14 07:34:30 +00:00
Richard M. Stallman
74c20cd37b (server-log): Record the current time.
End with newline whenever STRING doesn't end with one.
1995-11-10 17:01:59 +00:00
Richard M. Stallman
14f67fa6a5 (server-start): Try both full hostname and shortened
hostname when deleting the socket file.
1995-10-08 19:42:11 +00:00
Richard M. Stallman
77e5a3c7ce (server-process-filter): Ignore lines that don't start
with `Error:' or `Client:'.
1995-09-24 23:28:18 +00:00
Richard M. Stallman
08c229837b (server-buffer-done): Pause between client commands,
but not after the last one.
1995-08-10 22:07:41 +00:00
Richard M. Stallman
7e721a4fba (server-process-filter): Detect error messages from server. 1995-06-28 10:02:03 +00:00
Roland McGrath
98a4349ced (server-switch-buffer): Make first arg optional too;
server-edit might pass no args, since server-done might return nil.
1995-04-09 18:57:09 +00:00
Karl Heuer
f8c25f1b67 Update copyright. 1995-04-07 02:21:52 +00:00
Richard M. Stallman
9184aafbcd (server-buffer-done): Return a list
(NEXT-BUFFER KILLED).  KILLED is t if we killed the buffer.
(server-edit): Values from server-done is now list of
args for server-switch-buffer.
(server-switch-buffer): Likewise.

(server-switch-buffer): New optional arg KILLED-ONE.
Avoid the other-buffer at the end in that case.
1995-03-11 20:32:48 +00:00
Richard M. Stallman
68469f746c (server-process-filter): Process each line separately.
(server-buffer-done): Delete dead buffers from CLIENT list.
Wait a while after sending a command to emacsclient.
Verify that BUFFER is a buffer.
1994-12-29 01:43:50 +00:00
Richard M. Stallman
396e0e6ae5 (server-switch-buffer): Cope with dead frames and windows. 1994-12-23 03:30:53 +00:00
Richard M. Stallman
71207de2b6 Comment change. 1994-11-10 16:13:30 +00:00
Richard M. Stallman
02a8d13736 (server-switch-buffer): Don't go to an invisible frame.
Move to a non-dedicated window if possible.
Otherwise, make the window non-dedicated.
1994-10-04 04:20:21 +00:00
Richard M. Stallman
838cd60df9 (server-start): Always use pipes for communication. 1994-09-14 09:00:44 +00:00
Richard M. Stallman
e89da28d29 (server-start): Try both possible socket file names for the file to delete. 1994-07-11 20:36:53 +00:00
Richard M. Stallman
42bbacdff7 (server-start): Doc fix. 1994-06-11 20:18:46 +00:00
Richard M. Stallman
e82e73c21a (server-visit-files): Bind last-nonmenu-event.
(server-kill-emacs-query-function): Ignore killed buffers.
1994-05-28 17:22:31 +00:00
Richard M. Stallman
f9b3ef8860 (server-done-hook): New hook.
(server-buffer-done): Run it.
1994-05-20 23:48:12 +00:00
Richard M. Stallman
c58bf9ae2a (server-done): Never kill buffer here.
(server-buffer-done): Do it here, if temp file.
1994-05-19 05:58:21 +00:00
Karl Heuer
8f1204db34 Update copyright. 1994-05-03 23:47:06 +00:00
Richard M. Stallman
03d786655b (server-kill-emacs-query-function)
(server-kill-buffer-query-function): Give names to these hook fns.
1994-04-20 20:26:25 +00:00
Richard M. Stallman
04645d5fb3 (kill-emacs-query-functions): Fix typo in question text. 1994-04-19 02:49:51 +00:00
Richard M. Stallman
3717217eee (kill-buffer-query-functions): Fix the question text. 1994-04-19 00:31:42 +00:00
Karl Heuer
e5ccf0c17e (server-switch-buffer): Don't select a minibuffer. 1994-03-03 21:13:08 +00:00
Richard M. Stallman
faf931a83d (kill-emacs-query-functions, kill-buffer-query-functions):
Add functions to these lists.

(server-program): Add exec-directory to value.  Use expand-file-name.

(server-buffer-done): If buffer is dead, don't bury it.
(server-done): If we kill the old buffer,
and server-buffer-done gives us nil, return the new current buffer.
1994-03-03 19:23:59 +00:00
Richard M. Stallman
f0e7011766 (server-program): Add exec-directory to value. 1994-02-02 22:53:39 +00:00
Richard M. Stallman
3a0ce8496d (server-visit-files): Restore current-buffer by hand,
not using save-excursion.
1993-08-09 05:56:29 +00:00
Richard M. Stallman
991298c3fc (server-done): Let save-buffer make the backup,
so that make-backup-files remains effective.
1993-07-15 04:01:14 +00:00
Richard M. Stallman
01906bcac9 (server-process-filter): Use server-switch-buffer. 1993-06-15 23:11:38 +00:00
Richard M. Stallman
ec40ed9f4e (server-window): New variable.
(server-switch-buffer): Use it.
1993-06-11 18:28:44 +00:00
Jim Blandy
1b7899a524 * server.el (server-switch-hook): New hook.
(server-process-filter): Call it.
1993-05-18 22:15:14 +00:00
Christopher Zaborsky
cc9875f9f5 Doc fix. 1992-11-03 21:08:55 +00:00
Roland McGrath
16c15321db entered into RCS 1992-09-04 21:49:15 +00:00
Eric S. Raymond
6d74b528d0 *** empty log message *** 1992-07-22 03:58:44 +00:00
Eric S. Raymond
d7b4d18fd4 *** empty log message *** 1992-07-17 20:24:00 +00:00
Eric S. Raymond
e516799970 *** empty log message *** 1992-07-16 21:47:34 +00:00
Eric S. Raymond
630cc4634d *** empty log message *** 1992-07-15 21:31:44 +00:00
Richard M. Stallman
74c9690c44 *** empty log message *** 1992-06-09 18:16:08 +00:00
Eric S. Raymond
c88ab9ce4a *** empty log message *** 1992-05-30 21:11:25 +00:00
Jim Blandy
8785500682 *** empty log message *** 1991-12-05 23:21:45 +00:00
Richard M. Stallman
a10097faff *** empty log message *** 1991-09-03 00:29:34 +00:00
Roland McGrath
7229064dbf *** empty log message *** 1991-05-09 21:50:34 +00:00
Richard M. Stallman
b53d289e7a *** empty log message *** 1990-12-12 05:12:45 +00:00
root
9ae0f97209 Initial revision 1990-02-22 10:44:55 +00:00