Commit Graph
100 Commits
Author SHA1 Message Date
Roberto E. VargasandHiltjo Posthuma f8afebdfa0 Add rin terminfo capability
Tianlin Qu discovered that st is missing rin (scroll back #1 lines).
2020-05-16 14:07:31 +02:00
k0gaandHiltjo Posthuma bda9c9ffa6 Make shift+wheel behaves as shift+Prev/Next
St uses a very good hack where mouse wheel genereates ^Y and ^E,
that are the same keys that less and vi uses for backward and
fordward scrolling. Scroll, as many terminal emulators, use
shift+Prev/Next for scrolling, but it is also using ^E and ^Y
for scroling, characters that are reserved in the POSIX shell
in emacs mode for end of line and yanking, making scroll unsable
in st.

This patch adds a new hack, making shift+wheel returning the
same sequences than shift+Prev/Next, meaning that scroll or
any other similar program will not be able to differentiate
between them.
2020-05-16 12:37:14 +02:00
Roberto E. Vargas CaballeroandHiltjo Posthuma 771bc401f7 Add st-mono terminfo entry
This entry is intended for monocolor display and it is very
helpful for color haters.
2020-04-11 15:23:23 +02:00
Roberto E. Vargas CaballeroandHiltjo Posthuma 0b73612c0d Update FAQ with the last modifications 2020-04-11 15:23:23 +02:00
Roberto E. Vargas CaballeroandHiltjo Posthuma 019449a7e6 Add terminfo entries for backspace mode
St used to use backspace as BS until the commit 230d0c8, but due
to general lack of knowledge of lusers, we moved to the most common
configuration in linux to avoid answering the same question 3 times
per month. With the most common configuration we have a backspace
that returns a DEL, and we have a Delete key that doesn't return a
DEL character neither a BS.

When dealing with devices connected using a serial line (or even
with Plan9) it is more common Backspace as BS and Delete as DEL. For
this reason, st is not always the best tool when you talk with a
serial device.

This patch adds new terminfo entries for Backspace as BS and Delete
as DEL. A patch for confg.h is also added, to make easier switch
between both configurations.
2020-04-11 15:23:23 +02:00
Roberto E. Vargas CaballeroandHiltjo Posthuma fbae700a3f Fix style issue 2020-04-11 15:23:23 +02:00
Roberto E. Vargas CaballeroandHiltjo Posthuma e52319cc7d ttyread: test for EOF while reading tty
When a read operation returns 0 then it means that we arrived to the end of the
file, and new reads will return 0 unless you do some other operation such as
lseek(). This case happens with USB-232 adapters when they are unplugged.
2020-04-11 15:23:23 +02:00
Roberto E. Vargas CaballeroandHiltjo Posthuma 21e0d6e8b8 Add support for scroll(1)
Scroll is a program that stores all the lines of its child and be used in st as
a way of implementing scrollback.

This solution is much better than implementing the scrollback in st itself
because having a different program allows to use it in any other program
without doing modifications to those programs.
2020-04-11 15:23:20 +02:00
Roberto E. Vargas Caballero 20f713548d Change default keybindings
CTRL+SHIFT is an impossible combination in the terminal world
(0x20 | x & 0x1F), so it is perfect to be used for internals
shortcuts of terminals, and being a double combination
reduces the prossibility of having comflicts.
2017-01-25 19:17:38 +01:00
Roberto E. Vargas Caballero e44832408b Revert "Initial font size issue."
This reverts commit 424202798b.
2016-11-24 20:21:19 +01:00
Roberto E. Vargas Caballero 375b28720f Avoid recursive call to ttywrite from ttyread
Ttyread() calls to ttywrite, so if we check for reading before
that for writing in ttywrite we can get a circular call sequence.
2015-11-21 18:21:03 +01:00
Roberto E. Vargas Caballero 9f6d8845df Fix ttywrite()
ttywrite was assuming that if it could not write then it could
read, but this is not necessarily true, there are some situations
where you cannot read or write. The correct behaviour is to detect
if you can read or/and write.
2015-11-06 20:01:00 +01:00
Roberto E. Vargas Caballero 5d2d9d540d Fix copy of line with len = 0
When a line has no any character linelen is 0, so last = &term.line[y][MIN(lastx, linelen-1)]
generated a pointer to the end of the previous line. The best thing we can do in this case
is to add a newline, because we don't have a glyph to print (and consult its state of
wrapping).
2015-09-10 11:53:11 +02:00
Roberto E. Vargas Caballero a1ed5071e5 Change Pause to Break in shortcut for serial break 2015-09-08 17:02:15 +02:00
Roberto E. Vargas Caballero 1f087aa8b7 Add key to send a break to the serial line 2015-09-08 12:10:11 +02:00
Roberto E. Vargas Caballero 473326f2e3 Set default values of stty according to the man page
This configuration is basically 38400 8N1, without echo and
in raw mode. Kernel will not process any of the characters
sent by the user.
2015-09-08 10:47:31 +02:00
Roberto E. Vargas Caballero 7e61f5e4c5 Do not mark as invalid UTF8 control codes
wcwidth() returns -1 for all the non visible characters, but it doesn't
necessarilly mean that they are incorrect. It only means that they are not
printable.
2015-08-18 08:31:51 +02:00
Roberto E. Vargas Caballero 62756fdb49 Fix style in execsh 2015-07-24 07:44:34 +02:00
Roberto E. Vargas Caballero 71fa10f613 Revert "Optimize memory footprint of line buffers"
This reverts commit 7ab6c92e18.
We need 32 bits for real color support.
2015-06-03 08:07:55 +02:00
Roberto E. Vargas Caballero c03548750b Merge branch 'master' of ssh://suckless.org/gitrepos/st 2015-05-15 07:51:58 +02:00
Roberto E. Vargas Caballero f36dd277a2 Merge remote-tracking branch 'origin/master' 2015-04-23 17:59:39 +02:00
Roberto E. Vargas Caballero 0d7448dabc Fix segmentation fault in strhandle()
We cannot pass strescseq.args[0] to atoi when nargs is zero,
because in this case it will be null.
2015-04-23 17:59:10 +02:00
Roberto E. Vargas Caballero b17aa18f7c Uses a &[] pointer loop instead of + pointer loop 2015-04-23 17:59:10 +02:00
Roberto E. Vargas Caballero 215bdb2da3 Add tty line support
Not always is desirable to create a pseudo terminal, and some times
we want to open a terminal emulator over a tty line. With this new
patch is possible to do someting like:

	$ st -l /dev/ttyS0 115200

Without this option was needed to launch another terminal emulator
over st (for example minicom, picocom, cu, ...).
2015-04-15 10:52:44 +02:00
Roberto E. Vargas Caballero 83e73c6242 Merge branch 'master' of ssh://suckless.org/gitrepos/st 2015-04-14 09:47:19 +02:00
Roberto E. Vargas Caballero 23ed12857f Merge branch 'master' of ssh://suckless.org/gitrepos/st 2015-04-13 22:01:40 +02:00
Roberto E. Vargas Caballero 5bb90125c8 Remove redundant control check
control was set, but it was not ever used because it was set
again some lines later.
2015-04-06 10:55:00 +02:00
Roberto E. Vargas Caballero 288f80cb06 Remove strsep() call
strsep() is not a POSIX function, and it means that every system
needs different defines to expose it. If the prototype of strsep
is not exposed then an ugly int/pointer is done and it might mean
a crash. The best solution?, to remove the strsep and make a custom
loop. If C programmers cannot do this kind of loops without calling
a library function, then maybe we should move all the suckless
software to Java.
2015-03-20 07:29:28 +00:00
Roberto E. Vargas Caballero c9357a8edf Merge remote-tracking branch 'origin/master' 2015-03-19 08:36:50 +00:00
Roberto E. Vargas Caballero 86d1e432a8 Support XA_STRING in notify request
Some programs can only deal with XA_STRING, and it makes impossible st
be able of copying to them. This patch makes st answer also to XA_STRING,
althought it sends utf8 strings. It is not a problem because moderm
applications must support utf8.
2015-03-15 18:07:46 +00:00
Roberto E. Vargas Caballero b746816b78 Allow combinations with Backspace
XN_ANY_MOD makes that any combination of backspace will return always
DEL. This patch lets to X to decide which value returns.
2015-03-13 07:26:16 +00:00
Roberto E. Vargas Caballero 29619a1a35 Small improvements to the FAQ 2015-02-28 16:15:16 +00:00
Roberto E. Vargas Caballero 3604445ffc Comment default CC assignment
CC by default is cc, so the assignment was doing nothing, but
it was using non standard syntax, so some system (NetBSD) fail
to compile.
2015-02-22 10:59:26 +00:00
Roberto E. Vargas Caballero ac11bbb03b Update dates in LICENSE 2015-02-22 10:58:37 +00:00
Roberto E. Vargas Caballero f9fb620914 Do not set SHELL to utmp ever
SHELL must be set to the SHELL of the user, but it was possible set
it to utmp.
2014-10-15 19:42:20 +02:00
Roberto E. Vargas Caballero dcfe505d3c Use G1 for alternate charset
St has enacs, which must be printed if a program requires to use
the alternate charset (graphic charset), that in st case was to
select charset graphic for G1, but it was not useful
at all because smacs and rmacs were always redefining the value
of G0.
2014-10-08 11:35:45 +02:00
Roberto E. Vargas Caballero 88429cdcbf Add LS2 and LS3
These sequences are the equivalents of LS0 and LS1, but for G2 and
G3.
2014-10-08 11:33:36 +02:00
Roberto E. Vargas Caballero 0c8feecbf7 Fix SI and SO
SI (0x0F or ^O) means Shift In, and it selects G1 charset definition,
and SO (0x0E or ^N) means Shift Out, and it selects G0 charset
definition, but st was doing just the inverse.
2014-10-08 11:28:54 +02:00
Roberto E. Vargas Caballero c7a945c408 Add missed names of charset sequences 2014-09-23 07:16:58 +02:00
Roberto E. Vargas Caballero 5afb3862ba Add support for utmp in st
St runs an interactive shell and not a login shell, and it means
that profile is not loaded. The default terminal configuration
in some system is not the correct for st, but since profile is
not loaded there is no way of getting a script configures the
correct values.

St doesn't update the utmp files, this is the job of another
suckless tool, utmp. Utmp also opens a login shell (it is the
logical behaviour when you create a new user record) it is a
good option execute utmp and then get a correct input in
utmp, wtmp and lastlog file, and execute the content of the
profile.
2014-09-23 07:12:41 +02:00
Roberto E. Vargas Caballero 0392d165d0 Remove indentation level in xdrawcursor 2014-09-09 05:51:36 +02:00
Roberto E. Vargas Caballero e5f6736ee0 Add eschandle()
We already have a csihandle() function, where is located code about
CSI sequences, so it is logical do the same with ESC sequences.
This change helps to simplify tcontrol(), which has a complex flow
and should be rewritten.
2014-08-20 21:52:33 +02:00
Roberto E. Vargas Caballero a3549c2eec Improve execsh() and don't allow anonymous shells
This patch improves the shell selection on execsh and forbid
shell with users don't registered in the passwd file.
2014-08-20 09:03:44 +02:00
Roberto E. Vargas Caballero 8342036f98 Fix definition of CONTROLC0
DEL character is not thecnically talking a C0 control character,
although it has some common properties with them, so it is useful
for us consider it as C0. Before this patch DEL (\177), was not
ignored as it ought to be.
2014-08-19 12:57:44 +02:00
Roberto E. Vargas Caballero 9d9e049eac Make useful DEL in application mode
DEL key has to generate the sequence ^[P in application mode,
because such sequence means delete current character. It implies
that the character sent in keypad mode must be ^? (DEL character).
2014-08-19 12:57:43 +02:00
Roberto E. Vargas Caballero 8f3e6a577d Fix man page and usage()
Man page was repeating -f option, the second time instead of -i,
and this option was lost in usage() message. This patch also indent
the output of usage().
2014-08-17 20:49:33 +02:00
Roberto E. Vargas Caballero f8b4998b32 Convert VT102ID to a config variable
VT102ID is the sequence that the terminal returns when it is inquired
to identify itself. This value should be configurable in the same
way that another st parameters.
2014-08-15 15:00:48 +02:00
Roberto E. Vargas Caballero 6530025bca Fix portability problem in techo()
ISCONTROL chechks if a value is between 0 and 0x1f or
between 0x80 and 0x9f. Char signess depends of architecture
and compiler, so in some environment the second case is
always false (and wrong), Techo() calls ISCONTROL with a
char variable, whose type cannot be changed because tpuc()
expects a pointer to char, so the solution is to insert a
cast in the call to ISCONTROL.
2014-08-15 14:48:16 +02:00
Roberto E. Vargas Caballero 821a6e00a5 Remove ul capability
This capability indicates that underscore '_' overstrike current
letter under the cursor. It means that you can generate a
underline 'b' using 'b^H_', because it writes a 'b' then backward
one characther and then overstrike '_'. St has not such behaviour,
so it is an error to have this capability.
2014-08-07 10:19:48 +02:00
Roberto E. Vargas Caballero 8de8ae3923 Unset mode when clearing regions
tclearregion() was clearing regions using spaces and the current
attributes of the terminal. It was correct with all the modes excepct
underline, because they didn't affect the space character, but in
the case of underline it was a problem. A easy way of seeing this
problem is writing this in the last line of the terminal:

	tput smul ; echo first; tput rmul; echo second; echo third

Fist was underlined, and second and third were not underlined, but
the spaces at the right of second was underlined becuause in the
previous scrool underline mode was set.
2014-08-07 10:11:38 +02:00
Roberto E. Vargas Caballero ec3268961d Add error message when child exits whit error
Master proccess was not showing any error message when the child
died with an error, and it was very confusing for the user (for
example with incorrect -e command).
2014-08-04 22:07:04 +02:00
Roberto E. Vargas Caballero 769d481807 Remove difference between fast and slow blinking
One blinking mode is good enough, and two is too much. The best aproach
is emulate the fast blinking with the slow blinking, that it is more
used.
It is removed the flag ATTR_FASTBLINK because it has not a different
meaning of ATTR_BLINK, so it is not needed.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
2014-07-31 19:40:37 +02:00
Roberto E. Vargas Caballero f210ea26c4 Add info about Backspace and Delete to the FAQ 2014-07-25 17:09:27 +02:00
Roberto E. Vargas Caballero 8306568bd0 Add information about librt and OpenBSD to the FAQ 2014-07-25 17:09:27 +02:00
Roberto E. Vargas Caballero 844cd7ce17 Add information about librt and OpenBSD to the FAQ 2014-07-24 19:50:38 +02:00
Roberto E. Vargas Caballero 8c5ba1cfb0 Add information about librt and OpenBSD to the FAQ 2014-07-21 17:44:31 +02:00
Roberto E. Vargas Caballero 984c12d2a6 Add 8 bit version of DCS, APC, PM, OSC
DCS, APC, PM, OSC version for 7 bits environments already was implemented
in st.  This patch adds the 8 bit version of it.
2014-07-08 23:32:28 +02:00
Roberto E. Vargas Caballero da78629cf5 Add 8 bit version of HTS
HTS version for 7 bits environments already was implemented in st.
This patch adds the 8 bit version of it.
2014-07-08 23:32:28 +02:00
Roberto E. Vargas Caballero f5356d0185 Add 8 bit version of NEL
NEL version for 7 bits environments already was implemented in st.
This patch adds the 8 bit version of it.
2014-07-08 23:32:25 +02:00
Roberto E. Vargas Caballero bcbaf5d9be Add 8 bit version of DECID
DECID version for 7 bits environments already was implemented in st.
This patch adds the 8 bit version of it.
2014-07-08 23:28:10 +02:00
Roberto E. Vargas Caballero 77569526c0 Remove CEIL macro
This macro was not correct in some cases, and it was used only in
one place, where we did'nt get any benefit in performance of in size,
so the macro is removed and ceilf is used instead of it. The only
function needed from math.h is ceilf, so this patch defines the
prototype of it instead of including math.h.
2014-06-26 12:37:06 +02:00
Roberto E. Vargas Caballero 93661042a2 Simplify tdeftrans 2014-06-07 13:23:45 +02:00
Roberto E. Vargas Caballero 870f961c49 Fix displaying control code
Control code are never displayed. It is not important if graphic
charset is displayed or not.
2014-04-30 08:35:53 +02:00
Roberto E. Vargas Caballero 1629363f2d Remove ATTR_GFX and tselcs
ATTR_GFX was used long time ago to detect when terminal was in
graphic mode. Today graphic mode is implemented using a charset
pointer, so ATTR_GFX is not needed anymore because graphic
condition can be detected directly checking if current charset
is GRAPHICS C0.
2014-04-29 15:17:51 +02:00
Roberto E. Vargas Caballero a8a9e66a7d Simplify expressions in tputc() 2014-04-28 18:38:05 +02:00
Roberto E. Vargas Caballero 17290f493b Fix misplaced break
This misplaced break was causing an incorrect fall through
from DSR to DECSTBM.
2014-04-28 18:38:05 +02:00
Roberto E. Vargas Caballero 43d74ef362 Create a function for DEC test
Almost of the sequences execute their action in a separate function,
which is good because helps to read the full set of sequences
faster.
2014-04-28 18:38:05 +02:00
Roberto E. Vargas Caballero 3764f38fc8 Fix tputc control code handling
The patch 53105cf modified how control codes were detected, because
it tried to handle also C1 control codes (0x80-0x9f), that have
upper bit to 1, so they are multi byte character in utf8.
Code was checking the value of width in order to known that after
decoding the unicode point had a width of 1 byte, but it as incorrect
because this width is the columnb width.
2014-04-28 18:32:09 +02:00
Roberto E. Vargas Caballero 53105cf74f Remove repeated initialisation of term.esc
Once a sequence is completed term.esc must return to 0, so
instead of repeating this expression in all the cases is
better put it at the end of the block.
2014-04-27 11:30:21 +02:00
Roberto E. Vargas Caballero aa35bbd7a1 Cancel DCS with SUB, CAN, ESC or any CC1 code
From http://www.vt100.net/docs/vt510-rm/chapter4:

	*The VT510 ignores all following characters until it receives a
	 SUB, ST, or any other C1 control character.

So OSC, PM and APC sequence ends with a SUB (it cancels the sequence
and show a question mark as error), ST or any another C1 (8 bits)
code, or their C0 (7 bits) equivalent sequences (at this moment we
do not handle C1 codes, but we should). But it is also said that:

	Cancel  CAN
	1/8     Immediately cancels an escape sequence, control sequence,
		or device control string in progress. In this case, the
		VT510 does not display any error character.

	Escape  ESC
	1/11    Introduces an escape sequence. ESC also cancels any escape
		sequence, control sequence, or device control string in
		progress.
2014-04-27 11:30:13 +02:00
Roberto E. Vargas Caballero 6b7f63bac5 Simplify a bit more tdeletechar and tinsertblank
The large and repeated expression used in memmove to indirect
the line can be simplified using a pointer, that makes more
clear where begins and where ends the movement.
2014-04-25 17:25:59 +02:00
Roberto E. Vargas Caballero ebb6e03201 Merge remote-tracking branch 'origin/master' into omaster 2014-04-15 08:11:47 +02:00
Roberto E. Vargas Caballero c46d929fe1 Fix Backspace and Delete characters
Backspace key must generate the backspace character (\010) and
Delete key must generate the delete character (\0177). In
some systems the kernel configuration for erasing previous character
is \0177, so some programs (for example cat, ed, mail, ...), can not
understand the correct meaning of backspace. In this cases it is only
needed this command:

	stty erase 
2014-04-11 15:08:37 +02:00
Roberto E. Vargas Caballero 71328cbcdc Merge branch 'master' of ssh://suckless.org/gitrepos/st 2014-03-10 15:16:26 +01:00
Roberto E. Vargas Caballero 85f8a414be Add terminfo entries for printer
These capabilities inform to programs how print in local printer
of the terminal.
2014-03-06 07:55:21 +01:00
Roberto E. Vargas Caballero 78f8843bc7 Add sequence for printing the current selection
This is very usefull in order to can select what is sent
to the plumber.
2014-03-06 07:55:07 +01:00
Roberto E. Vargas Caballero 96c230e476 Add key definition for printer sequences
These new combinations generate the same behaviour (basically) of
vt102. It is a good way of communicating st with other programs.

[0] http://www.vt100.net/docs/vt102-ug/chapter2.html
2014-03-06 07:53:15 +01:00
Roberto E. Vargas Caballero 6166a1afc8 Add MC for the full screen
This sequence is very useful because allows comunicate the content
of the terminal to another program.
2014-03-06 07:51:58 +01:00
Roberto E. Vargas Caballero cf332a325d Add MC for a single line
This sequence print the current line. It is different to the
'printer on' sequence, where all the characters that arrive to the
terminal are printer. Here only the ascii characters are printed.
2014-03-06 07:50:34 +01:00
Roberto E. Vargas Caballero 1f0d981bd7 Add MC sequence
This sequence control when the printer is enabled or disabled. This
sequence control the behaviour of the -o option.
2014-02-22 11:54:30 +01:00
Roberto E. Vargas Caballero cdb3b1892a Add xstrdup function
Since we are using xmalloc, xrealloc ..., then it is not logical
call directly to strdup.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
2014-02-08 19:58:37 +01:00
Roberto E. Vargas Caballero 315b7ee9ce Merge remote-tracking branch 'origin/master' 2014-02-04 11:46:45 +01:00
Roberto E. Vargas Caballero 6521b5dc32 Remove non defined behaviour in selcopy
It is not defined when lateral effects of expressions are
calculated, so an expression as:

	--last >= gp && !(selected(last - gp, y)

is non portable.
2014-02-02 19:42:01 +01:00
Roberto E. Vargas Caballero a8d5870073 Remove duplicated code in strhandle
The error condition was duplicated in two different switches.
This new version centralized the error handling in only one place.
2014-02-02 19:42:01 +01:00
Roberto E. Vargas Caballero 21d905c076 Make Shift+Home equal to CLS in ascii mode 2014-02-02 19:40:38 +01:00
Roberto E. Vargas Caballero 9523233e25 Make CONTROL + DELETE delete a line
If CONTROL + INSERT inserts a line then it seems natural CONTROL + DELETE
removes a line.
2014-02-02 19:30:38 +01:00
Roberto E. Vargas CaballeroandChristoph Lohmann d2173cd716 Fix SHIFT+DEL definition
The AppMode and AsciiMode were inverted in the definition of this
combination.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2014-01-31 12:41:37 +01:00
Roberto E. Vargas Caballero 33da67dac0 Update arg.h from sbase
sbase did some interesting modifications to arg.h (basically it
was fixed an incorrect use of the _ namespace), and this commit
take this last version for st.
2013-12-18 08:29:28 +01:00
Roberto E. Vargas Caballero 53474391bc Fix stupid bug in tdefcolor returning -1 in unsigned function
k0ga misktook applying patch of others. Sorry guys!!!!
2013-11-25 14:09:53 +01:00
Roberto E. Vargas Caballero 3d3c37bc70 Merge remote-tracking branch 'origin/master' into omaster 2013-10-28 19:18:24 +01:00
Roberto E. Vargas Caballero 7a4eefe87c Add support for multiple charset definitions
vt100 has support for two defined charset, G0 and G1. Each charset
can be defined, but in each moment is selected only one of both
charset. This is usually used selecting a national charset in G0
and graphic charset in G1, so you can switch between graphic
charset and text charset without losing the national charset
already defined.

st hasn't support for national charsets, because it is an utf8
based terminal emulator, but it has support for graphic
charset because it is heavily used, but it only supports G0,
without understanding G1 selection sequences, which causes some
programs in some moments can print some garbage in the screen.

This patch adds a fake support for multiple charset definitions,
where we only support graphic charset and us-ascii charset, but
we allow more of one charset definition.

This patch allow define G0 until G3 charsets, but only accepts
select G0 or G1, and it accepts some national charset definitions
but all of them are mapped to us-ascii.
2013-10-02 21:22:15 +02:00
Roberto E. Vargas Caballero 4579693818 Add terminfo definitions for terminals with meta key
Some programs don't check the value of km and use smm and rmm
capabilites, and they cause the terminal change to meta enabled
mode even in cases where is not desirable.

Allmost all people is using the terminal waiting that meta sends
escape, so rmm and smm are not needed. If someone needs meta
sets 8 bit he can use the correct terminfo definition in TERM.
2013-08-12 16:53:09 +02:00
Roberto E. Vargas Caballero aaee0e8b28 Reload colors in reset
Colors definition can be changed using a OSC sequence, so
we have to reload them if we want be sure all the colors
are the correct.

Could be desirable free the colors allocated due to rgb
colors and inverse colors (XftColorAllocValues in xdraws),
but it is impossible due we use the same structure for all
of them.
2013-07-20 23:25:46 +02:00
Roberto E. Vargas Caballero 8dde8cde41 Add RGB color definition
This patch uses the bit 24 in the color descriptor as an indicator
of RGB color, so we can take the values and generating the XftColour
directly in xdraws.
2013-07-20 23:25:38 +02:00
Roberto E. Vargas Caballero 6e1c7c8afc Fix match function bugs
There were two problems with match denfinition.

1) There was a forward declaration in the form:

	static inline bool match(uint, uint);

but later the function was defined as:

	inline bool
	match(uint mask, uint state) {

This causes that there were two different functions in the code, one local
and inline, and other inline but extern. All was working without problems
due to we were using -Os, and the compiler was using the extern definition
and it was no expanding the static declaration. If you removed the -Os flag,
then you got linker errors due it was no able to find the static definition
of the static declaration.

2) The mask checking was incorrect because we were doing the test:

	(state & mask) != state

and this test only was saying that at least all the enabled bits of state
were enabled also in mask, but no all the possible bits in mask. This was
the origin of the bug reported by Xavier Cartron, where he said it was
possible activated some shortcuts with some of the modifiers defined in the
config.h file.
2013-07-04 09:21:57 +02:00
Roberto E. Vargas Caballero 90c6f055b6 Remove unneded call to draw
draw is the function which update the Xwindow with the information st has,
and it is designed in a way that it must be called once in the main loop
(run function), and calling it in other places it is a waste of time.
2013-07-04 09:14:50 +02:00
Roberto E. Vargas Caballero ebbac77d74 Fix selection clearing
The way st knows if there is a selection activated is checking if sel.ob.x
is equal to -1. In some parts of the code the way of disabling the selection
was only setting it to -1, but after it you can't be sure if the selection
is clearing from the terminal representation, because it is necessary mark
all the lines affected by the selection as dirty. Already there is a functon
which perform this task, selclear.
2013-07-04 09:14:50 +02:00
Roberto E. Vargas CaballeroandChristoph Lohmann 048c54fd5b Fix selecting clearing and BCE
The commit b78c5085f7 changed the st behaviour enabling BCE capability,
that means erase regions using background color. Problem comes when you
clear a region with a selection, because in this case the real mode of the
Glyph is not the value of term.line[y][x], due in drawregion we had enabled
the ATTR_REVERSE bit.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
2013-04-23 20:36:30 +02:00
Roberto E. Vargas Caballero d5994b43ca Add support for End key
- Shift + End : Delete until end of line.
    - Control + End : Delete until end of screen.

When  the End  key is  pressed  without any  modifier is  not generated  the
correct sequence for it  (going to the end of the  screen), because the size
of the  terminal is not known,  so it is  not possible write a  sequence for
this purpouse.
---
 config.def.h |   10 ++++++++--
 st.info      |    2 ++
 2 files changed, 10 insertions(+), 2 deletions(-)
2012-11-25 22:13:29 +01:00
Roberto E. Vargas Caballero 7c34ff1703 Add support for Supr key
Del : Delete character under cursor.
    Shift + Del : Delete the line under cursor.
    Ctrl + Del: Delete the full screen.
---
 config.def.h |   16 ++++++++++++----
 st.info      |    2 ++
 2 files changed, 14 insertions(+), 4 deletions(-)
2012-11-25 22:13:24 +01:00