Commit Graph

824 Commits

Author SHA1 Message Date
Brandon Invergo c6853fe185 apply post-XDBE patch BORDER fix 2012-08-03 14:46:40 +02:00
Brandon Invergo 94771d0588 Implement Xdbe-based double-buffering 2012-07-28 14:27:26 +02:00
Aurélien Aptel cfea72c7b4 cleanup. refactored dirt-related function. 2012-02-27 12:44:02 +01:00
Aurélien Aptel 6c0a1eff2f use SHELL as default shell. 2012-02-16 19:24:46 +01:00
Aurélien Aptel ff5edcfd70 replace fwrite by printf. 2012-02-16 00:59:26 +01:00
Aurélien Aptel cb2e0e9c31 rewrite csidump(). 2012-02-16 00:58:16 +01:00
Aurélien Aptel 53ac69e90d clean and name enum definitions. 2012-02-16 00:33:11 +01:00
Aurélien Aptel 751fb765e4 fix default color overwriten bug. 2012-02-16 00:10:32 +01:00
Aurélien Aptel be2877cd04 show dark cursor when unfocused. 2012-02-15 19:33:48 +01:00
Aurélien Aptel 33558ca042 handle dim/bright colors. 2012-02-15 19:10:31 +01:00
Aurélien Aptel 6de1ba6e74 merge 2012-02-13 01:01:41 +01:00
anselm@garbe.us b11e22df7d some minor fixes 2012-02-11 10:48:18 +01:00
Aurélien Aptel cee6ccc6ee reduce size of each glyph for faster copy. 2012-02-08 16:45:52 +01:00
Aurélien Aptel bcb7ec68c2 cosmetic, whitespace, etc. 2012-01-21 23:43:03 +01:00
Aurélien Aptel df54ab0405 fix PRINT/DRAW _TIMEOUT and fix redrawing bug. 2012-01-21 23:26:53 +01:00
Aurélien Aptel 896310e592 copy dirty lines to screen, add select() timeout & min time between draw() calls.
* add a timeout value (SELECT_TIMEOUT) of 20ms in the select() call
* wait at least 20ms (DRAW_TIMEOUT) between draw() calls
* only copy dirty lines from the buffer to the screen

what draw() does:
* clears dirty lines in the buffer
* draws the longest same-attributes string of each
  dirty line to the buffer with multiple xdraws() call
* copies the current dirty line from buffer to the screen with a single
  xcopy() call

this changeset makes st run ~10x faster.
2012-01-21 23:14:41 +01:00
Aurélien Aptel 13a8eeb810 fix segfault in selection. (thx Martti Kühne) 2012-01-10 22:21:03 +01:00
Aurélien Aptel ab9c9a4e3a merge. 2011-11-01 16:37:16 +01:00
Aurélien Aptel a20125a3d1 fix selection. (thx Tarmo Heiskanen) 2011-11-01 16:33:43 +01:00
Aurélien Aptel 23bb97d9f3 drawregion() only copies region on screen. 2011-10-20 23:26:58 +02:00
Aurélien Aptel 0dbf9c8c12 add dirty flag for lines 2011-10-20 23:20:59 +02:00
Aurélien Aptel 907cb8bfa6 no palette limit (thx Nick) 2011-10-06 21:32:34 +02:00
Aurélien Aptel 9d613092d6 simplify version format. 2011-09-22 10:04:58 +02:00
Aurélien Aptel 4bd087766f selection is removed or scrolled properly. (thx Rafa Garcia Gallego) 2011-09-16 18:48:16 +02:00
Aurélien Aptel b032814e25 working on old repo, merging recent changesets. 2011-09-16 18:24:13 +02:00
Aurélien Aptel 8e66b5cc16 move xembedatom in XWindow struct, add link to xembed specs. 2011-09-16 18:21:48 +02:00
Aurélien Aptel 8d2d8848e8 tweak focus to support XEMBED client message and remove focus on EnterNotify. (thx Adrian) 2011-09-16 18:03:44 +02:00
Aurélien Aptel d5f3d120ea remove dup of default window size. 2011-09-16 17:57:56 +02:00
Aurélien Aptel 6f260ba164 fix custom key handling. 2011-08-14 17:13:59 +02:00
Aurélien Aptel 8503f954a1 fix focus state when embed in another window. 2011-06-09 18:25:56 +02:00
Aurélien Aptel cddbd6eee5 fix segfault with mouse selection. (thx anonymous) 2011-06-09 14:27:07 +02:00
Aurélien Aptel 3959a99293 add -w option to embed st. (thx nodus cursorius) 2011-06-08 21:35:58 +02:00
Aurélien Aptel 4736edd469 applied parts of "anonymous" cleanup patch. 2011-06-08 20:26:00 +02:00
Aurélien Aptel 189a81caa1 add altscreen escseq alias & caps to terminfo entry. (thx Bert Münnich) 2011-06-08 20:22:38 +02:00
Aurélien Aptel 9b404c0dfb disable mouse highlight when mouse report enabled. (thx Bert Münnich) 2011-06-08 19:32:10 +02:00
Aurélien Aptel d59f92d6f1 reverse video mode. (thx Bert Münnich) 2011-06-08 12:40:35 +02:00
Aurélien Aptel 6734de9b6e set title before mapping window (thx Kamil Cholewiński). 2011-05-22 16:57:27 +02:00
Aurélien Aptel 7d352f1436 applied parts of Connor Lane Smith's cleanup patch. 2011-05-14 17:47:37 +02:00
Aurélien Aptel 5beae6a62e macro cleanup. 2011-05-10 22:55:35 +02:00
Aurélien Aptel 80da37203e support for x11 xterm mouse reporting 2011-05-10 22:22:44 +02:00
Aurélien Aptel 8eaed2cdda whitespace. 2011-04-26 20:29:28 +02:00
Aurélien Aptel babf4db52b cleanup. 2011-04-26 20:22:15 +02:00
Aurélien Aptel aede91e22a update TODO 2011-04-22 00:42:58 +02:00
Aurélien Aptel 9d5ea14b9d selection clicks, shift+arrow keys, fast(er) redraw, key mask in config.h (thx Magnus Leuthner) 2011-04-22 00:18:53 +02:00
Aurélien Aptel 89c8a3a2d9 take BORDER into account for selection. (thx Petr Sabata) 2011-04-03 21:03:48 +02:00
Aurélien Aptel 9b63dd9f43 fix utf8 clipboard. (thx Petr Sabata) 2011-04-03 21:00:55 +02:00
Aurélien Aptel 674434ef6f add support for utf8 clipboard. fix usage message. 2011-04-03 00:35:02 +02:00
pancake@nopcode.org a047431d34 do not add newline to selection text if next line not selected (Nick) 2011-04-01 09:35:38 +02:00
pancake@nopcode.org fe72483686 remove debugging printf 2011-04-01 09:33:28 +02:00
pancake@nopcode.org 1ab42fd49e apply Nick's patch to fix some error printf to use stderr 2011-04-01 09:32:41 +02:00
Aurélien Aptel 0a208cb616 change X cursor to "I". 2010-12-12 13:32:13 +01:00
Aurélien Aptel 86c5cb6de6 change -e behaviour and update man page. 2010-11-30 22:55:44 +01:00
Aurélien Aptel 732b9601ed -e flag handles arguments. 2010-11-28 13:17:20 +01:00
Aurélien Aptel 54bc450dbf use memmove() instead of memcpy() in ttyread(). 2010-11-28 01:40:39 +01:00
Aurélien Aptel af75c433e5 fix and clean ttyread(). buf wasn't static. 2010-11-27 21:19:31 +01:00
Aurélien Aptel 41a4497ecf merge. 2010-11-26 22:12:54 +01:00
Aurélien Aptel 00ba6969f8 s/xw.dis/xw.dpy/ 2010-11-26 22:11:31 +01:00
pancake@nopcode.org eaf38bf310 Fix unused variable issue and OSX includes 2010-11-24 14:27:44 +01:00
Aurélien Aptel b61925b5d6 cleanup & bugfix in xdraws(). 2010-11-20 22:24:04 +01:00
Aurélien Aptel 81a048d6cf clean comment regarding redrawing in bmotion(). 2010-11-19 22:32:39 +01:00
Gregor Best b61afd24be Add -c option to override the default window class 2010-11-19 17:13:13 +01:00
Aurélien Aptel 70464e2080 some code cleaning. 2010-11-18 12:43:33 +01:00
Aurélien Aptel 9b74fcadc4 utf8 support! print text in delicious unicode greatness! all hail to the glorious Damian Okrasa for the patch!
TERM set back to xterm.
changed default fonts.
Note: drawing is now (even) slower.
2010-11-18 01:00:04 +01:00
Aurélien Aptel d581bfccd7 selection code cleanup. 2010-11-08 19:49:13 +01:00
Aurélien Aptel b1e6099220 fixed ED. 2010-10-31 20:29:22 +01:00
Devin J. Pohly edfbc9b432 redraw if we scroll on resize 2010-10-25 16:45:13 -04:00
Devin J. Pohly 638a30359d get rid of artifacts in border on resize down 2010-10-25 16:00:10 -04:00
Devin J. Pohly d85f7319a2 copy old pixmap to new on resize 2010-10-25 15:26:47 -04:00
Devin J. Pohly 1243581772 move code into new xresize func, add early exit to resize 2010-10-25 15:10:41 -04:00
Aurélien Aptel 722688d989 \v and \f are have the same behaviour of \n. 2010-10-16 20:54:19 +02:00
Aurélien Aptel 6f87a39444 added LNM mode; re-organized kpress() to handle it. 2010-10-16 20:50:29 +02:00
Aurélien Aptel ce27e63491 redraw optimization. 2010-10-16 17:13:22 +02:00
Aurélien Aptel 9e004846de fixed newline bug. 2010-10-14 19:21:12 +02:00
Aurélien Aptel 68d8fcf62a replaced memset by loops in tresize(); turns out it's faster. 2010-10-13 01:27:09 +02:00
Aurélien Aptel e4bf56ae1a remove useless draw(). 2010-10-13 01:25:04 +02:00
Aurélien Aptel d693b304c7 applied xclipboard patch. thx David Isaac Wolinsky. 2010-10-13 01:24:11 +02:00
Aurélien Aptel 3a50a4fd93 clean button selection code. 2010-10-13 00:50:18 +02:00
Aurélien Aptel 3470e3af23 compose key patch. thx federico luna. 2010-09-21 16:04:13 +02:00
Aurélien Aptel 6faedce53a s/hasfocus/focus/ for consistency. 2010-09-11 16:07:36 +02:00
Aurélien Aptel ab7037cb33 don't draw if the window is not visible. 2010-09-11 16:05:57 +02:00
Aurélien Aptel f693476365 use xclear() in draw(). 2010-09-11 16:01:41 +02:00
Aurélien Aptel 8c3757986a use XCreateWindow(), set gravity bit. 2010-09-11 15:59:54 +02:00
Aurélien Aptel 273d4ba938 cleaning st.info. added comment in st.c for DECSCNM. 2010-09-03 00:15:43 +02:00
Aurélien Aptel c43526153f cleaning st.info. fixed cvvis. 2010-09-03 00:00:41 +02:00
Aurélien Aptel 223909e008 undefined gfx doesn't draw \0. 2010-09-02 20:21:40 +02:00
Aurélien Aptel fbc6ec3207 resize from the top. 2010-09-02 01:42:03 +02:00
Aurélien Aptel 9d82bdd947 added -e and -t option. 2010-09-02 01:37:01 +02:00
Aurélien Aptel 97695baf4f factored code and fixed behaviour of tnewline(). 2010-09-01 23:20:54 +02:00
Aurélien Aptel df5c5ed045 removed debug code. 2010-09-01 18:12:54 +02:00
Aurélien Aptel 5ce6c5c032 fixed IL and DL. 2010-09-01 17:21:09 +02:00
Aurélien Aptel ef69118028 factor and cleanup code. 2010-09-01 16:26:12 +02:00
Aurélien Aptel cfe897554d use struct instead of array. 2010-08-31 18:30:18 +02:00
Aurélien Aptel 9703859e6c cleanup. 2010-08-31 18:22:59 +02:00
pancake@nopcode.org 591d147af7 fix segfault when selecting big buffers
shift+insert paste clipboard
honor CFLAGS and LDFLAGS in config.mk
2010-08-31 17:36:55 +02:00
Aurélien Aptel 1132d9e2d6 fix build. 2010-08-31 16:56:27 +02:00
Aurélien Aptel c4225bdcc9 add selinit() and renamed clipboard_* to sel*. 2010-08-31 16:53:34 +02:00
Aurélien Aptel f211bc2eed move event configuration in xinit(). 2010-08-31 16:30:11 +02:00
Aurélien Aptel ee858b4805 use one global struct instead of many vars for selection. Cleanup. 2010-08-31 15:36:13 +02:00
Aurélien Aptel 80f70f1c22 use GLYPH_SET to test if a char is set; cleanup. 2010-08-31 14:52:52 +02:00
pancake@nopcode.org 23cc3fc571 fix crash for small windows
use unconditional infinite loops
2010-08-31 11:40:57 +02:00
Aurélien Aptel 160bda1b60 toggle ATTR_REVERSE on selected text, factored some code and fixed Makefile. 2010-08-31 11:02:17 +02:00
pancake 596bb133a5 fix build
use config.def.h mechanism
add SHELL in config.h
2010-08-30 23:49:15 +02:00
pancake 0ba53e48c7 initial implementation of selection and clipboard 2010-08-30 23:41:37 +02:00
pancake@nopcode.org e1ce89f267 fix segfault 2010-08-30 17:07:54 +02:00
Aurélien Aptel 12c25bcea9 added support for alternate screen. 2010-08-30 16:48:18 +02:00
Aurélien Aptel 326586ba43 cursor is hid when unfocused. 2010-08-30 15:28:29 +02:00
Aurélien Aptel ae5baac932 use predefined OS macro instead of uname. 2010-08-30 13:04:19 +02:00
Aurélien Aptel bef87acd0d st should compile on NetBSD. 2010-08-30 01:20:38 +02:00
Aurélien Aptel e851736e8b removed (visual) bell. '\a' sets the urgency flag if st is unfocused. 2010-08-30 03:05:05 +02:00
Aurélien Aptel 188293c828 removed useless cursor init. and renamed xcursor() to xdrawcursor(). 2010-08-30 01:45:57 +02:00
Aurélien Aptel 7d88cf88d0 added support for the "magic margin", changed c.hide to c.state, changed xcursor() to use term instead of a
parameter and fixed the cursor position after setting a scrolling region.
2010-08-30 01:35:37 +02:00
Aurélien Aptel 1f6e7b84c6 removed old VT52 escapes, fixed VT100 IND. 2010-08-30 01:19:05 +02:00
Aurélien Aptel 5258d60545 fixed optimized drawing routine and factored some code. 2010-08-29 20:12:44 +02:00
Aurélien Aptel b4f623f910 fixed pixmap buffer drawing. 2010-08-29 19:41:36 +02:00
Aurélien Aptel eab9aad1dc added a XFlush() in xbell(). 2010-08-29 19:14:05 +02:00
Aurélien Aptel 2181040594 moved term.hidec in term.c for consistency, put back delay in xbell()
along with duration in config.h, factored some code in tnew()/treset()
and cleaned some code.
2010-08-29 18:55:15 +02:00
Aurélien Aptel c186c8ef9a merged tscroll() with tscrollup(). 2010-08-29 12:27:59 +02:00
Aurélien Aptel 6db6980e27 st now runs on Linux, OpenBSD and FreeBSD. 2010-08-28 03:18:22 +02:00
Aurélien Aptel c563328571 removed XINERAMA from config.mk and fixed a segfault when st is
started without a display. (thx Hiltjo Posthuma)
2010-08-27 13:53:27 +02:00
Aurélien Aptel a1018e0e9e fixed potential bug in IS_SET(). 2010-08-27 00:58:28 +02:00
Aurélien Aptel fbb66da9a9 merged tcursorwrap() with tnewline(), added few comments and updated copyright. 2010-08-27 00:28:27 +02:00
Aurélien Aptel 42b2912e21 cleaned some spaces. 2010-08-27 00:05:50 +02:00
Aurélien Aptel 5d611cd547 added macro to test flags, removed tmovecursor(). 2010-08-26 23:43:08 +02:00
Aurélien Aptel 4db3df312a faster resizing. 2010-08-26 21:37:12 +02:00
Aurélien Aptel e8c13ebe80 close master/slave pty in the shell process. 2010-08-26 21:36:21 +02:00
Aurélien Aptel 5c93f399c5 clean \t. 2010-08-26 21:34:37 +02:00
Aurélien Aptel 44226483fb update function prototypes. 2010-08-26 21:33:53 +02:00
Aurélien Aptel b09401b96b fix \b and clean \t. 2010-08-26 21:32:34 +02:00
Aurélien Aptel a7922bd1d9 added F1-12 key, fixed DCH and ICH. 2010-08-22 19:46:46 +02:00
Aurélien Aptel ce3f4fc647 fixed backspace problem, updated terminfo entry and moved TNAME in config.h. 2010-08-19 12:46:54 +02:00
Aurélien Aptel d2f157c741 renamed a function. 2010-08-13 22:43:30 +02:00
Anselm R Garbe 10e49a0505 applied Devin J Pohly's st color info patches, thanks Devin! 2010-07-24 12:09:14 +01:00
pancake@nopcode.org 9e8f5f1348 fix gcc warnings 2010-07-08 17:34:02 +02:00
Aurélien Aptel 499c70cda0 fixed background color bug (thx Devin J. Pohly). 2010-07-08 16:31:41 +02:00
Aurélien Aptel 2f96cfeada added PBaseSize hint and set default title to "st". 2010-06-03 23:14:37 +02:00
Aurélien Aptel 2f5ebe0a4d rearranged code, resize fixed. 2010-06-02 16:01:30 +02:00
Aurélien Aptel 476f93794a little clean up. 2010-04-27 00:04:29 +02:00
Aurélien Aptel d01c55c9ab use SHELL environment variable (thx Thomas Adam) 2010-04-26 19:20:53 +02:00
Aurélien Aptel b3b7ffce5f double-buffering added using pixmap (finally).
results in a lot of simplification :
	- no more dirty flags (perf are good enough).
	- no more ugly gfx call in emulation functions.
LINESPACE removed from config.h.
BORDER is now handled correctly.
2010-03-15 23:56:38 +01:00
Aurélien Aptel 0f4dd5035e bold attribute is back.
visibility of the cursor is not saved/loaded anymore.
scrolling up/down is fixed.
added RI and RIS sequences.
fixed cursor drawing bug.
2010-03-11 23:50:50 +01:00
Aurélien Aptel 7cdaf130b1 added VT100 NEL. 2010-02-21 14:59:32 +01:00
Aurélien Aptel 639f16d200 added VT100 RI. 2010-02-21 14:39:31 +01:00
Aurélien Aptel 636c369d86 added VT100 save&load cursor support. 2010-02-21 14:28:32 +01:00
Aurélien Aptel 3ba517e796 ECH handled correctly. 2010-02-21 14:14:58 +01:00
Aurélien Aptel eff05c7b90 more escapes & more compability:
cursor keys are handled in kpress according to the Application Mode (DECPAM).
define & enum were renamed.
tcursor() is now tmovecursor() which is more correct.
tcpos() is now tcursor(), as DECSC is also supposed to save attributes.
capnames are indicated whenever possible.

Currently:
alsamixer looks fine, totally usable.
ncmpc is almost ok.
emacs looks like shit.
2010-02-08 23:16:55 +01:00
Aurélien Aptel e6b3f5c755 graphic charset and a few more escapes. 2010-02-03 16:18:04 +01:00
Aurélien Aptel 0981437524 TERM set to xterm by default (which broke a lot of stuff), better escape handling (title), and a little clean up. 2010-02-03 03:25:35 +01:00
Aurélien Aptel f2dff29a16 drawing is faster but the bold attr is not supported anymore. 2009-10-28 14:34:22 +01:00
Aurélien Aptel 4e6915a16b Fixed possible segfault by reverting to the key struct (again). 2009-09-07 21:19:29 +02:00
Anselm R Garbe dab8326e64 only compile tdump if DEBUG flag is set 2009-07-10 16:27:14 +01:00
Anselm R Garbe cf65699a29 we definately need pixmaps for the drawing, currently drawing into the window is painfully slow! much more slower than drawing into a pixmap and mapping that when finished -- several optimisations 2009-07-10 16:23:11 +01:00
Aurélien Aptel 0a5e510209 reverted back to the old Key struct. 2009-06-21 19:52:06 +02:00
Aurélien Aptel 4d794b3479 updated "key" to a lookup table. 2009-06-21 19:37:12 +02:00
Aurélien Aptel 44d8c319a9 removed old unused cursor() proto. 2009-06-17 20:44:36 +02:00
Aurélien Aptel b8ffa1d7e9 fixed the scrolling bug and cleaned some stuff. 2009-06-17 02:58:40 +02:00
Aurélien Aptel d5f4554431 dump escseq if not handled. 2009-06-16 12:34:10 +02:00
Aurélien Aptel 53937e045a clean up. 2009-06-16 02:41:45 +02:00
Aurélien Aptel 8b4bfe31ec made kpress() more flexible, removed st.h, added config.h. 2009-06-16 02:23:46 +02:00
Aurélien Aptel ad39f000be added sigchld handler, cleaned error checking. 2009-06-11 16:41:14 +02:00
Aurélien Aptel 2f35cef54b cleaned up (removed space indentation). select/event bug fixed. 2009-05-28 01:33:01 +02:00
Aurélien Aptel 129bcd7586 fixed a memory leak & segfault in tresize. 2009-05-26 02:21:02 +02:00
Aurélien Aptel a866108af2 tab moves the cursor instead of inserting spaces. 2009-05-15 00:39:51 +02:00
Aurélien Aptel 1cf8b77d27 handle tabulation (still not perfect) 2009-05-14 01:03:17 +02:00
Aurélien Aptel 0ecfcc39b0 removed truecolor stuff 2009-05-14 00:28:10 +02:00
Aurélien Aptel 86fa756033 same thing, really fixed this time. 2009-05-14 00:18:05 +02:00
Aurélien Aptel ccafacb3ff added some error checking in xinit (fixed the segfault caused by a missing font) 2009-05-14 00:04:34 +02:00
Aurélien Aptel fd281ad336 Removed unused variable and cleaned some comment. 2009-05-10 23:32:21 +02:00
Anselm R Garbe d58dd3b8bc backport of local changes 2009-05-10 13:17:09 +01:00
Matthias-Christian Ott f982c1c37c replace eprint() functions with BSD error functions 2008-07-04 18:05:08 +02:00
Matthias-Christian Ott 0c0ada8a7f make st and std separate programmes 2008-06-14 11:03:29 +02:00
Matthias-Christian Ott 339e7f3571 add missing header file 2008-06-10 18:01:15 +02:00
Matthias-Christian Ott 5f28725471 source utility functions out to util.c 2008-06-10 17:56:57 +02:00
Anselm R Garbe 375efb8891 slight changes 2008-06-01 18:04:49 +01:00
Anselm R Garbe 1987ae4bac added some new files for the initial rewrite of st from scratch 2008-05-20 10:03:59 +01:00