aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Plug some memory leaks.Nicholas Marriott2009-07-30
|
* Don't babysit people and let them try to load /dev/zero or (more useful)Nicholas Marriott2009-07-30
| | | | /dev/null if they want.
* Remove some dead code found by clang.Nicholas Marriott2009-07-30
|
* tweak previous;Jason McIntyre2009-07-30
|
* Similar changes for server_msg_dispatch: use a switch instead of a lookup tableNicholas Marriott2009-07-30
| | | | and merge smaller functions inline.
* There aren't many client message types or code to handle them so get rid of theNicholas Marriott2009-07-30
| | | | | | | | | | lookup table and use a switch, merge the tiny handler functions into it, and move the whole lot to client.c. Also change client_msg_dispatch to consume as many messages as possible and move the call to it to the right place so it checks for signals afterwards. Prompted by suggestions from eric@.
* Tell the server when the client gets SIGTERM so it can clean up the terminalNicholas Marriott2009-07-30
| | | | properly, rather than just exiting.
* Merge pane number into the target specification for pane commands. Instead ofNicholas Marriott2009-07-30
| | | | | | | | | | | | | | using -p index, a target pane is now addressed with the normal -t window form but suffixed with a period and a pane index, for example :0.2 or mysess:mywin.1. An unadorned number such as -t 1 is tried as a pane index in the current window, if that fails the same rules are followed as for a target window and the current pane in that window used. As a side-effect this now means that swap-pane can swap panes between different windows. Note that this changes the syntax of the break-pane, clear-history, kill-pane, resize-pane, select-pane and swap-pane commands.
* new sentence, new line;Jason McIntyre2009-07-30
|
* Add a mode-mouse option to prevent tmux taking over the mouse in choice or copyNicholas Marriott2009-07-30
| | | | modes.
* Add an additional heuristic to work out the current session when run from theNicholas Marriott2009-07-29
| | | | | | | | | command line. The name of all slave ptys in the server is known, so if the client was run on a tty, look for any sessions containing that tty and use the most recently created. This is more reliable than looking at $TMUX if windows have been moved or linked between sessions.
* Rename struct hdrtype to msgtype which is a better name and can be used evenNicholas Marriott2009-07-29
| | | | when struct hdr disappears.
* Taking account of the "s, 22 not 24 is the maximum length of #T in status-rightNicholas Marriott2009-07-29
| | | | to prevent the date being cut off.
* Final pieces of mode key rebinding: bind-key and unbind-key now accept a -tNicholas Marriott2009-07-28
| | | | argument to modify a table.
* Accept and print "Enter" and "Escape" for keys rather than C-m and C-[.Nicholas Marriott2009-07-28
|
* Next step towards customisable mode keys: build each default table of keys intoNicholas Marriott2009-07-28
| | | | | | a named tree on start and use that for lookups. Also add command to string translation tables and modify list-keys to show the the mode key bindings (new -t argument).
* If select-layout is not given an argument, repply the last layout used in theNicholas Marriott2009-07-28
| | | | window, if any.
* Remove an unused entry in the mode keys command enum and renameNicholas Marriott2009-07-27
| | | | MODEKEYCOPY_QUIT to _CANCEL to match the others.
* Change mode key bindings from big switches into a set of tables. Rather thanNicholas Marriott2009-07-27
| | | | | | | lumping them all together, split editing keys from those used in choice/more mode and those for copy/scroll mode. Tidier and clearer, and the first step towards customisable mode keys.
* Get rid of empty mode_key_free function.Nicholas Marriott2009-07-27
|
* Add a key to delete to end of line at the prompt (^K in emacs mode, C/D in vi).Nicholas Marriott2009-07-27
| | | | From Kalle Olavi Niemitalo.
* Draw UTF-8 characters under the selection correctly.Nicholas Marriott2009-07-27
|
* Change previous-word behavior to move to the beginning of the word (matchesNicholas Marriott2009-07-27
| | | | emacs and vi). From Kalle Olavi Niemitalo.
* Detect backspace by looking at termios VERASE and translate it into \177 (whichNicholas Marriott2009-07-26
| | | | | | matches screen's behaviour if not its termcap/terminfo entry). The terminfo kbs cap is often wrong or missing so it can't be used, and just assuming \177 may be wrong.
* Calculate the space available for the prompt buffer and the cursor positionNicholas Marriott2009-07-26
| | | | | | correctly, and make it work when the screen is not wide enough. Noticed by Kalle Olavi Niemitalo.
* Go to the next if the current best process is replaced, don't keep comparing itNicholas Marriott2009-07-26
| | | | with itself. Also fix process name comparison.
* Make all messages sent between the client and server fixed size.Nicholas Marriott2009-07-26
| | | | | | | | | | | | | | This is the first of two changes to make the protocol more resilient and less sensitive to other changes in the code, particularly with commands. The client now packs argv into a buffer and sends it to the server for parsing, rather than doing it itself and sending the parsed command data. As a side-effect this also removes a lot of now-unused command marshalling code. Mixing a server without this change and a client with or vice versa will cause tmux to hang or crash, please ensure that tmux is entirely killed before upgrading.
* Set the active pane when respawning a window - fixes problems when respawning aNicholas Marriott2009-07-24
| | | | window with multiple panes.
* Use the full range of ACS line drawing characters to draw pane borders,Nicholas Marriott2009-07-24
| | | | including intersections.
* cmd_find_index should return -2 on error.Nicholas Marriott2009-07-24
|
* Simplify screen redrawing by drawing the border and background together ratherNicholas Marriott2009-07-24
| | | | | than border separately, and consolidating all the drawing characters into one string.
* Accept lowercase c- and m- prefix as well as C- and M-.Nicholas Marriott2009-07-24
|
* Permit commands to be bound to key presses without the prefix key first. TheNicholas Marriott2009-07-24
| | | | | new -n flag to bind-key and unbind-key sets or removes these bindings, and list-key shows them in []s.
* up-pane and down-pane no longer auto-repeat; update the description ofStuart Henderson2009-07-24
| | | | | | | | | repeat-time accordingly. ok nicm@ if you prefer old behaviour; bind -r Up up-pane bind -r Down down-pane
* None of the server message functions return anything but 0, so make them allNicholas Marriott2009-07-23
| | | | | | void. Also remove a leftover variable in client.c.
* Tidy client message return slightly: convert flags into an enum, and mergeNicholas Marriott2009-07-23
| | | | error string into struct client_ctx as well.
* Redraw after starting selection to correctly remove any existing selection.Nicholas Marriott2009-07-23
|
* Revert r1.5, I don't like it, new sessions should start off identically - withNicholas Marriott2009-07-23
| | | | the defaults.
* C-d is delete as well in emacs mode.Nicholas Marriott2009-07-23
|
* Both of cmdclient and curclient CAN be NULL - if the command is executed fromNicholas Marriott2009-07-23
| | | | | the configuration file. In this case, attach-session can't do much, and new-session should just assume -d.
* If there is a current session, use its default path and working directory forNicholas Marriott2009-07-22
| | | | the initial window when creating a new session.
* Pass a set of flags into client_init rather than just a start_serverNicholas Marriott2009-07-22
| | | | variable. Only one flag now but more to come later.
* window_add_pane cannot fail, so remove the unused cause argument and don'tNicholas Marriott2009-07-22
| | | | bother to check for a NULL return.
* Tidy the target parsing code a bit and correct the behaviour so that as beforeNicholas Marriott2009-07-22
| | | | | | | | a string with no colon as a target window is first looked up as a window then as a session, noted by Iain Morgan. Also attempt to clarify the description of the target specification in the man page.
* tty_write is relatively short and the only function left in tty-write.c so moveNicholas Marriott2009-07-22
| | | | it into tty.c.
* More tty code tidying: move the saved cursor/region position (from before theNicholas Marriott2009-07-22
| | | | screen was updated) out of struct screen and into struct tty_ctx.
* log_debug3 no longer exists, change the sole use in GRID_DEBUG to log_debug2.Nicholas Marriott2009-07-22
|
* enum tty_cmd is only used as an index into the array of command functionNicholas Marriott2009-07-22
| | | | | pointers, so remove it and use the function pointers directly to represent themselves.
* There are relatively few arguments to tty_cmd_* functions now, so tidy them upNicholas Marriott2009-07-22
| | | | by using a struct rather than hiding everything with varargs.
* tty_cmd_raw is only used once, for raw UTF-8 output, so rename it toNicholas Marriott2009-07-22
| | | | tty_cmd_utf8character and eliminate the size argument.