Added keybindings to change the spacing of fonts.
(Michael Myer)
Changed the config "system"
Split config.h.in into config.make and config.h by make.
(Changed several times accidentally config.h.in within
the src directory..)
This might be more clear now.
(Michael Myer)
Added "mode-less": Scrolling without Shift
Enter with Ctrl+Shift+l "modeless".
Scroll around, without holding Shift.
<Esc> or <q> quit this mode.
Added Home/End: Scroll to top/bottom.
(Michael Myer)
Tue May 5 22:50:39 CEST 2020
(Michael Myer)
fixed ascii (cp1250) input
minor bugfix.
Beeing honest, some black magic seems to work.
(Michael Myer)
Tue May 5 17:35:35 CEST 2020
(Michael Myer)
Tue May 5 17:06:02 CEST 2020
Notes:
Tagging this 1.0.rc1
Yet finally st runs solid stable,
also on frequent size resize events.
I have worked with st in this version for several months now,
at least at the systems I worked, I didn't experience severe bugs.
The most annoying has been st crashing on frequent resizes. (Using i3)
This I fixed finally by keeping the terminal`s and history`s width,
so they do not need to be reallocated on every resize event.
I guess, this has nothing to do with st,
instead with the implementation of xmalloc
within the xserver.
Anyways. I will test this for a while,
but I'm overall satisfied with my modifications.
The only thing I'm still thinking about is a performance
related modification of the history's buffer.
Atm, the terminal and the history buffer are separated.
This is somehow not nice. Would be nice to blend the terminal buffer
directly into the history.
However, this is - more likely just a matter of programming art and style.
I believe, I'm already able to claim the fastest terminal emulator for X.
Sparing the copies, and also avoiding some memory fragmentation,
might give some further performance gain.
But other things would be more interesting to me. e.g.,
having a graphical menu bar.
Or, a "scrollback" mode, where the cursor keys are
mapped to a less style scrolling mode.
The biggest problem I still do have is the untydiness of the code base.
I'm sorry to say that, but stuffing all the code into one single file - well.
Makes it hard to get into.
I separated the single source file into several source and header files.
But still some global vars and so on do make modifications hard.
For now, I tag this 1.0.rc1.
Since it seems finally stable with my modicifactions.
(Michael Myer)
Added devlog. Extract log from git
(Michael Myer)
history doesn't shrink on resize
The history doesn't shrink on resize anymore.
The content of a larger screen keeps saved.
Notes:
Not resizing the history to a lower width
seems to be far more stable.
Although I guess, the crashes on frequent size changes before
have to do with internals of the xserver,
I got quite bored by this.
I'm using i3, and therefore resize events are happening quite often here.
Seems stable now.
I'm still testing. But might be the time for a release now.
(Michael Myer)
Mon May 4 19:17:49 CEST 2020
(Michael Myer)
Scrolling with Shift+Up/Down
Enabled Shift+Up/Down. Scroll Up, down 3 lines.
(Set in config.h.in)
(Michael Myer)
(Mon Feb 10 07:50:35 2020 +0100)
(Mon Feb 10 07:45:10 2020 +0100)
(Michael Myer)
Tue Jan 21 12:43:01 CET 2020
(Michael Myer)
(Thu Jan 16 22:57:32 2020 +0100)
(Michael Myer)
minor
(Michael Myer)
Cleanup
(Michael Myer)
splitting sources
Notes:
Oh man. Tydied the whole day.
Now the sun sets down.
I should take a picture of my workrooms view here.
I like it. And it's nicely quit. Just the birds.
Possibly I should think about getting more flexible again.
Being always in the city is not that good.
On the other hand, I obviously need the city's life.
It really is closely related with my life itself.
IF there's something left. What is not really certain.
(Michael Myer)
Splitting sources
(Michael Myer)
remove compile time header
(Michael Myer)
Cleanup. Split sources
Notes:
Still cleaning up.
The former main file, st.c, gets more easy to look through.
But still is close to 2000 loc's.
I'm going to remove the usage of globals as far as possible.
I'd like to merge two buf's, the history buf, and the current screen buf.
Atm, the screen is copied to the history, when scrolling,
and vice versa.
That's unneccessary. Would be much nicer to have a "virtual" screen buf just pointing to
a line in the history buf.
As soon, I have managed to split the according source files further,
this might be quite more easy to change to.
The rule, try to keep all your source files below 1000 loc's -
Albeit I include the source files itself into the main source file,
splitting the files also into different "namespaces" (virtually)
is really helpful.
Maybe it's my experience (and love) with perl - there you don't have any rules at all obliged.
But very soon you'll see, you should give yourself the rules. Of, e.g., "virtual"
namespaces. It's like working with goto's. Goto's are there, behind
every language. And in most languages you are able use them.
And, when optimizing close to hardware level, you should use them.
The compiler is not always as good as it's being told.
However, use gotos wisely .. ;) The spaggeti monster isn't only a fairy tale,
it snoozed you out, and when not being careful, will crunch you again.
(Michael Myer)
cleanup. utf8 macros.
(Michael Myer)
cleanup. dir src created
(Michael Myer)
Cleanup. Indentation
(Michael Myer)
Splitting sources
(Michael Myer)
cleanup. splitting sources
(Michael Myer)
(Wed Jan 15 20:43:17 2020 +0100)
(Michael Myer)
sources separated. working on resize()
(Michael Myer)
Splitted the source files. Optimizing flag
This is interesting.
By including all source files into one file,
and adding the option -fwhole-program to the gcc options,
the whole thing is quite more responsive.
So, somehow it seems to me,
the traditional approach of splitting all sources
into source (.c) and header file (.h) is a relict
of times, when every single object file took
at least several seconds to compile.
Nowadays, and my development system is quite old -
this splitting is not needed anymore.
So it seems to me now.
At least for "smaller" projects.
(Michael Myer)
debugging header
(Michael Myer)
splitting sourcefiles
(Michael Myer)
tagging 0.9.rc4
Everything seems to work.
I'm still about to add changes for rebuilding the history
on resize events, so linewraps and so on will show up correctly.
Somehow, it's a bit tricky. So I'm going to clean the sources now, also
separating into more different files.
Before I tag this 0.9.rc4.
Somehow I'm fixed on having the linewrap actualization work.
Yet, all these mallocs and free's give segfaults. :/
As usual. I personally would have written some things in another way,
from the beginning. Maybe I should do some further changes.
Now some inconsistencies show up.
Having the history and the current screen's line buf separated is one of
the annoyances to me. It's simply unneccessary.
But deeply in the sources.
Anyways - I'm going to do some tidying work now.
(Michael Myer)
documentation
(Michael Myer)
documentation
(Michael Myer)
(Sun Jan 12 01:20:19 2020 +0100)
(Sun Jan 12 01:16:31 2020 +0100)
(Michael Myer)
docu, manpage
(Michael Myer)
(Sun Jan 12 00:02:52 2020 +0100)
(Sat Jan 11 23:48:05 2020 +0100)
(Sat Jan 11 23:45:07 2020 +0100)
(Sat Jan 11 23:23:44 2020 +0100)
(Sat Jan 11 23:23:02 2020 +0100)
(Michael Myer)
gcc flags
(Michael Myer)
Cleanup
(Michael Myer)
(Sat Jan 11 23:16:31 2020 +0100)
(Sat Jan 11 23:16:06 2020 +0100)
(Michael (misc) Myer)
Update README.md
(Michael (misc) Myer)
(Sat Jan 11 23:09:20 2020 +0100)
(Sat Jan 11 23:07:42 2020 +0100)
(Sat Jan 11 23:03:58 2020 +0100)
(Michael Myer)
logging
(Michael Myer)
Tagging 0.9.rc3 (b)
(Michael Myer)
needed for shared library
(Michael Myer)
tag this 0.9rc3. Seems to be stable.
(Michael Myer)
backup
(Michael Myer)
Dump more verbose info on version and compile spec
(Michael Myer)
Debugging switch in config.h.in.
Enable (global) debugging now with the debug flag in config.h.in
Might be useful for reporting bugs.
(when encountering a bug, please compile with debugging
set to level 1, and save the output.
st-asc > log.txt
(Michael Myer)
docu
(Michael Myer)
Optimization for non Utf8.
Copy int32 at once, instead of byte for byte.
Could be further optimized; but I don't
want it too machine dependent.
(Now this depends on unsigned int being 32bit long.
And could be adapted easily.)
Byte for Byte, eye for eye. :) I guess,
this doesn]t work in English.
(Michael Myer)
save compiler info in the binary
(Michael Myer)
README
(Michael Myer)
x.h added, needed for the creation of st-asc as shared library
(Michael Myer)
Edited the config "system".
Now only one file, config.h.in, needs to be edited.
(Michael Myer)
Dynamic allocation of the history buffer
Made the allocation of the memory for the hist buf dynamic.
for, e.g., 16k lines of history, this results in around 6MB Memory
(depending on the terminal's width);
which are now allocated dynamically.
Notes:
if utf8 is enabled, the saving is more than 30/40MB,
depending on the terminal's width and the history len.
(Michael Myer)
configuration via one file only
(Michael Myer)
v0.9rc2
(Michael Myer)
cleanup
(Michael Myer)
utf8 compileswitch seems to work
(Michael Myer)
Optimizations. Option to build a shared version
The optimizations finally start to give better results.
To name them: No temporary vars for swapping of values,
instead xor exchange
No division/modulo, replaced by bit operations
(Michael Myer)
SWAP via xor
(Michael Myer)
before changes to history
(Michael Myer)
scrollback
(Michael Myer)
History scrollback limited to the history (Not the buf)
(Michael Myer)
(Thu Jan 9 12:56:47 2020 +0100)
(Michael Myer)
UTF8 Switch
(Michael Myer)
Compileswitch UTF8.
After thinking about it, it's not so much code for utf8.
A cleaner codebase would be nicer.
But on the other hand, having the option to switch to utf8
might also be nice.
Has to be implemented as compile time switch.
(Michael Myer)
Color option for the cursor in unfocused windows added
(Michael Myer)
Added a nicer cursor for unfocused windows
The default empty rect has been an annoyance to me,
since I met Linux the first time.
(Michael Myer)
Replaced division by bitshift
division is the most expensive operation.
Anyways. doesn't seem to be a big difference.
1E9 equals 1.000.000.000
2^30 might be close enough
(Michael Myer)
update
(Michael Myer)
update
(Michael Myer)
documented applied patches
(Michael Myer)
renamed
(Michael Myer)
(Wed Jan 8 00:29:01 2020 +0100)
(Tue Jan 7 23:57:27 2020 +0100)
(Tue Jan 7 23:56:16 2020 +0100)
(Michael Myer)
moved pictures to ./images
(Michael Myer)
moved pictures to ./images
(Michael Myer)
moved pictures to ./images
(Michael Myer)
(Tue Jan 7 22:41:37 2020 +0100)
(Michael Myer)
vogons
(Michael Myer)
(Tue Jan 7 21:56:20 2020 +0100)
(Tue Jan 7 21:55:47 2020 +0100)
(Tue Jan 7 21:55:16 2020 +0100)
(Tue Jan 7 21:54:13 2020 +0100)
(Tue Jan 7 21:53:41 2020 +0100)
(Tue Jan 7 21:53:06 2020 +0100)
(Tue Jan 7 21:52:48 2020 +0100)
(Tue Jan 7 21:51:42 2020 +0100)
(Tue Jan 7 21:49:28 2020 +0100)
(Tue Jan 7 21:48:06 2020 +0100)
(Michael Myer)
screenshot of i3 and st-asc
(Michael Myer)
(Tue Jan 7 21:27:13 2020 +0100)
(Tue Jan 7 20:56:26 2020 +0100)
(Tue Jan 7 20:55:44 2020 +0100)
(Michael Myer)
resize
(Michael Myer)
vt102 picture added
(Michael Myer)
replaced config.h with symbolic link
(Michael Myer)
(Tue Jan 7 20:05:58 2020 +0100)
(Tue Jan 7 20:01:46 2020 +0100)
(Tue Jan 7 19:58:14 2020 +0100)
(Tue Jan 7 19:45:43 2020 +0100)
(Tue Jan 7 19:43:48 2020 +0100)
(Tue Jan 7 19:43:16 2020 +0100)
(Michael Myer)
ascii table
(Michael Myer)
(Tue Jan 7 19:33:25 2020 +0100)
(Tue Jan 7 19:32:09 2020 +0100)
(Tue Jan 7 19:30:27 2020 +0100)
(Tue Jan 7 19:29:21 2020 +0100)
(Tue Jan 7 19:28:33 2020 +0100)
(Michael Myer)
ansicolor test added
(Michael Myer)
Code reformatted
(Michael Myer)
readme
(Michael Myer)
readme
(Michael Myer)
readme
(Michael Myer)
readme
(Michael Myer)
readme
(Michael Myer)
readme (not)
(Michael Myer)
minor. documentation.
(Michael Myer)
moved to ./test/
(Michael Myer)
simple tests added
(Michael Myer)
simple tests added
(Michael Myer)
minor
(Michael Myer)
log
(Michael Myer)
ISCONTROL simplified
(Michael Myer)
utf8 file added for tests
(Michael Myer)
vt102 ascii control char table
(Michael Myer)
Ascii code tables added for reference
(Michael Myer)
Makefile simplification
(Michael Myer)
Makefile simplification
(Michael Myer)
Makefile cleanup
(Michael Myer)
man page
(Michael Myer)
Makefile fix
(Michael Myer)
Added debug macros.
"Debugged" the handling of German Umlauts.
Recognized, the problem has been with the shell (zsh)..
I'll keep the dbg macros. Might need them later again.
(Michael Myer)
minor
(Michael Myer)
log
(Michael Myer)
utf8. Compiler warnings silenced
(Michael Myer)
regression bug fixed
(Michael Myer)
minor
(Michael Myer)
Makefile switch XRESOURCES
(Michael Myer)
documentation
(Michael Myer)
Added compile time switch XRESOURCES
needs to have the switch XRESOURCES defined at compile time
(somehow I don't have a good feeling with this patch
(Michael Myer)
docu
(Michael Myer)
Patches applied. Set "Unicode" chars to 1 Byte. rgb stripped
(Michael Myer)
Applied patches
(Michael Myer)
update
(Michael Myer)
docu
(Michael Myer)
Patches applied. Set "Unicode" chars to 1 Byte. rgb stripped
(Michael Myer)
Makefile - config.h replaced by link
(Michael Myer)
Last commit before codebase change
(Michael Myer)
docu
(Michael Myer)
removing useless config file
(Michael Myer)
removing useless config file
(Michael Myer)
docu
(Michael Myer)
(Sun Jan 5 14:07:58 2020 +0100)
(Michael Myer)
terminfo file
(Michael Myer)
(Sun Jan 5 12:03:32 2020 +0100)
(Sun Jan 5 11:56:56 2020 +0100)
(Sun Jan 5 11:56:13 2020 +0100)
(Sun Jan 5 11:54:57 2020 +0100)
(Sun Jan 5 11:48:25 2020 +0100)
(Sun Jan 5 11:46:42 2020 +0100)
(Sun Jan 5 11:43:04 2020 +0100)
(Sun Jan 5 11:32:49 2020 +0100)
(Sun Jan 5 11:31:51 2020 +0100)
(Sun Jan 5 11:27:09 2020 +0100)
(Sun Jan 5 11:24:29 2020 +0100)
(Sat Jan 4 23:50:13 2020 +0100)
(Sat Jan 4 23:47:51 2020 +0100)
(Michael Myer)
Initial and crude commit
(Michael Myer)
(Sat Jan 4 23:25:20 2020 +0100)
(Michael Myer)
documenting
(Michael Myer)
Readme added
(Michael (misc) Myer)
Initial commit