Coder Social home page Coder Social logo

havoc's People

Contributors

consolatis avatar e2dk4r avatar ii8 avatar paper42 avatar sijad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

havoc's Issues

Backspace is treated as Ctrl+H on emacs

To reproduce, launch emacs:
emacs -nw
Try to find a file using Ctrl+x - Ctrl+f and then use the backspace key : Emacs treat it as a Ctrl+H and open the help menu.

This may be related to this.

One can simply to swap the two keys in emacs ((keyboard-translate ?\C-h ?\C-?) ), but other terminals don't have this problem so I'm wondering if it can be fixed.

(Thanks you for creating the lightest wayland terminal emulator btw!)

Run as a login shell

Could there be an option, as an alternative to program, to start as a login shell?

Do a release once in a while

I have a working Void package template, but Void packages only software with releases, they do not accept commit snapshots. Could you tag a release once in a while?

improve/redo tsm screen

  • don't push things into scrollback unnecessarily when reducing size
  • move things from the scrollback onto the main screen when increasing size
  • don't cut off text at the right when decreasing size, instead wrap text properly as resize occurs
  • allow special rendering for the cursor so it can have different shapes and colors
  • fix selection behavior for empty cells left of text
  • double and triple click select

Support make --prefix=... and make DESTDIR=... ?

Thank you for your great work on this program! I can give a testament that it works great, and fast.

I was trying to package it for my operating system (that would be Arch Linux) and it appears to me that there is no support for building into a temporary location.

  1. The usual way to set the location from which a program will be run is to issue ./configure --prefix ..., as described, for instance, here. But there is no configure script and make does not understand this parameter either.
  2. The usual way to build into a temporary location is to issue make DESTDIR=... install, as described, for instance, here. But it appears to me that this option is ignored.

Now, I was able to build the program into a temporary location by editing Makefile by hand and changing the value of PREFIX, but I would not like to use sed to correct this value every time I want to update my package.

If you could arrange it so that make install understands DESTDIR and that make understands prefix, I am sure many people will be able to enjoy the fruits of your work with greater ease.

Support a system wide config file

Hey there!

A install target could be added into the makefile that installs the default havoc.cfg into a directory like /usr/share/havoc/ or /etc/havoc/ (I prefer the first one). That way, if the terminal is packaged, users have a default document to use as reference. It would be interesting if it was also supported as one of the places that havoc looks for a config file.

I am interested in implementing this (would probably be quite simple) if you think it's a feature you want.

musl: nonspacing.h has different content in upstream

tig shows 2019-10-12 update ctype data to unicode 12.1.0
commit e95538fa07d2b460b25ee6c2fef05f820888776d

Related question: How is the content of tsm folder generated?
Would be nice to put a hint or the scripts for that.

Global config file

Good day. I was wondering if it would be possible for a master config file supported by this project? For instance, have a config file loaded at /etc/havoc/havoc.cfg. I would be willing to write the code and open a pull request for this change, but I wanted your opinion before I do that.
My thought is that the config's priority would be thus: $XDG_CONFIG_HOME first, then in $HOME/.config, then in /etc/havoc and last in the current working directory.
The reason for this request is that (some) package management systems only install files listed in the Makefile, whick would prevent endusers from getting a config file by default.

Use the shell of the current user's preference by default?

I see that by default /bin/sh is used. Perhaps it would be more reasonable to use whichever shell is specified for the current user in /etc/passwd, or otherwise preferred? For instance, SHELL environment variable is a standard location where the path to the user's preferred shell executable may be found. That would make the experience so much better from the start.

To safeguard from non-existent or non-executable SHELL, a fallback to /bin/sh may still be put in place.

Better default values

Use 80*25 by default. Since this is the default of several term programs. It also heartened that the terminal fits on screen
Also use bash as the default shell. It make life easier

Open with executing scripts

Thanks for this marvellous job!

I use terminal everywhere in my daily workflow. And the most thing that I do is opening a terminal with interactive scripts. However when it came to havoc, I found no option such as -e like other terminals to meet my needs. So is there any possibble workaround to achive this goal? Any advise will be appreciated!

Unable to run havoc

./havoc 
wl_registry@2: error 0: invalid version for global wl_seat (5): have 4, wanted 5
missing required formats
Clean exit

I guess its incompatibel to my Wayland version?
Best regards,
Jonas

havoc leaks memory on simple start and termination

Running in shell valgrind -s --leak-check=full --show-leak-kinds=all ./havoc &> leak_report.txt and closing the terminal leads to the following report:

==350889== Memcheck, a memory error detector
==350889== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==350889== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info
==350889== Command: ./havoc
==350889== 
==350889== Warning: noted but unhandled ioctl 0x5441 with no size/direction hints.
==350889==    This could cause spurious value errors to appear.
==350889==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==350889== 
==350889== HEAP SUMMARY:
==350889==     in use at exit: 264,646 bytes in 1,594 blocks
==350889==   total heap usage: 15,602 allocs, 14,008 frees, 6,911,963 bytes allocated
==350889== 
==350889== 2 bytes in 1 blocks are still reachable in loss record 1 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FF86B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 5 bytes in 1 blocks are still reachable in loss record 2 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F9E66: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 6 bytes in 1 blocks are still reachable in loss record 3 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F9EC2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 7 bytes in 1 blocks are still reachable in loss record 4 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FA421: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 8 bytes in 1 blocks are still reachable in loss record 5 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F9CA7: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 9 bytes in 1 blocks are still reachable in loss record 6 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01C14: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 10 bytes in 1 blocks are still reachable in loss record 7 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F9E38: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 10 bytes in 1 blocks are still reachable in loss record 8 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x49EB958: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 10 bytes in 1 blocks are still reachable in loss record 9 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x49FE0AB: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 10 bytes in 1 blocks are still reachable in loss record 10 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x49F3AD6: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 10 bytes in 1 blocks are still reachable in loss record 11 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x49FF91E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 12 bytes in 1 blocks are still reachable in loss record 12 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A070CD: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F131A: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 16 bytes in 1 blocks are still reachable in loss record 13 of 43
==350889==    at 0x483E6D5: malloc (vg_replace_malloc.c:379)
==350889==    by 0x49FF12E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FF8C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 19 bytes in 1 blocks are still reachable in loss record 14 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01C3E: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 23 bytes in 1 blocks are still reachable in loss record 15 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01BE1: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 24 bytes in 1 blocks are still reachable in loss record 16 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x49ECAC8: xkb_compose_state_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x11254A: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 30 bytes in 1 blocks are still reachable in loss record 17 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE34E: strdup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A0194E: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01C80: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 32 bytes in 1 blocks are still reachable in loss record 18 of 43
==350889==    at 0x483E6D5: malloc (vg_replace_malloc.c:379)
==350889==    by 0x4A019D8: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01C80: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 32 bytes in 1 blocks are still reachable in loss record 19 of 43
==350889==    at 0x483E6D5: malloc (vg_replace_malloc.c:379)
==350889==    by 0x4A01A98: xkb_context_include_path_append (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01C3E: xkb_context_include_path_append_default (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A01ED0: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 32 bytes in 1 blocks are still reachable in loss record 20 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x4A01E48: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 44 bytes in 8 blocks are still reachable in loss record 21 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A016FC: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03283: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 64 bytes in 1 blocks are still reachable in loss record 22 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x4A07047: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F131A: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 80 bytes in 1 blocks are still reachable in loss record 23 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x49CF94D: wl_display_read_events (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFF33: wl_display_dispatch_queue (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 136 bytes in 1 blocks are still reachable in loss record 24 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x4A052C9: xkb_state_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124DD: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 256 bytes in 8 blocks are still reachable in loss record 25 of 43
==350889==    at 0x484383F: realloc (vg_replace_malloc.c:1192)
==350889==    by 0x49FDC45: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 320 bytes in 20 blocks are still reachable in loss record 26 of 43
==350889==    at 0x483E6D5: malloc (vg_replace_malloc.c:379)
==350889==    by 0x49FDC45: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 576 bytes in 1 blocks are still reachable in loss record 27 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x49EBA0D: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 638 bytes in 75 blocks are still reachable in loss record 28 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FA49A: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 813 bytes in 64 blocks are still reachable in loss record 29 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F9CDC: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 1,200 bytes in 15 blocks are still reachable in loss record 30 of 43
==350889==    at 0x483E6D5: malloc (vg_replace_malloc.c:379)
==350889==    by 0x49FD89C: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 1,344 bytes in 1 blocks are still reachable in loss record 31 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x49FDFF7: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 1,424 bytes in 1 blocks are still reachable in loss record 32 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x4A0167C: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03283: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 2,184 bytes in 1 blocks are still reachable in loss record 33 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x4A01CEB: xkb_context_new (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x10CBA1: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 2,787 bytes in 561 blocks are still reachable in loss record 34 of 43
==350889==    at 0x483E7C5: malloc (vg_replace_malloc.c:380)
==350889==    by 0x4ABE38E: strndup (in /usr/lib/libc-2.33.so)
==350889==    by 0x4A01367: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FB1C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 3,360 bytes in 12 blocks are still reachable in loss record 35 of 43
==350889==    at 0x484383F: realloc (vg_replace_malloc.c:1192)
==350889==    by 0x49FD89C: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FDF88: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 4,096 bytes in 1 blocks are still reachable in loss record 36 of 43
==350889==    at 0x484383F: realloc (vg_replace_malloc.c:1192)
==350889==    by 0x4A013DE: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FB1C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 4,608 bytes in 1 blocks are still reachable in loss record 37 of 43
==350889==    at 0x484383F: realloc (vg_replace_malloc.c:1192)
==350889==    by 0x49EB3ED: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F3D31: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 8,192 bytes in 1 blocks are still reachable in loss record 38 of 43
==350889==    at 0x484383F: realloc (vg_replace_malloc.c:1192)
==350889==    by 0x4A01340: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F9CDC: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A4B: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 9,576 bytes in 399 blocks are still reachable in loss record 39 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x49FFA9A: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 22,401 bytes in 1 blocks are still reachable in loss record 40 of 43
==350889==    at 0x484383F: realloc (vg_replace_malloc.c:1192)
==350889==    by 0x49EB1DC: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49EB263: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F1373: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 34,032 bytes in 1 blocks are still reachable in loss record 41 of 43
==350889==    at 0x48435FF: calloc (vg_replace_malloc.c:1117)
==350889==    by 0x49EB771: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== 53,248 bytes in 399 blocks are still reachable in loss record 42 of 43
==350889==    at 0x483E6D5: malloc (vg_replace_malloc.c:379)
==350889==    by 0x49F625A: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FEA82: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49FF8C0: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03BB2: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A04A5E: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x4A03297: xkb_keymap_new_from_buffer (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x1124B6: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889== 
==350889== 112,960 bytes in 1 blocks are still reachable in loss record 43 of 43
==350889==    at 0x484383F: realloc (vg_replace_malloc.c:1192)
==350889==    by 0x49EB1F8: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49EB263: ??? (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x49F1373: xkb_compose_table_new_from_locale (in /usr/lib/libxkbcommon.so.0.0.0)
==350889==    by 0x112534: kbd_keymap (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x4C22D49: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x4C22266: ??? (in /usr/lib/libffi.so.8.1.0)
==350889==    by 0x49D1FF2: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CE562: ??? (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x49CFC8B: wl_display_dispatch_queue_pending (in /usr/lib/libwayland-client.so.0.3.0)
==350889==    by 0x1123EF: handle_display (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889==    by 0x10CFB0: main (in /home/misterspoon/dev/git/c/havoc/havoc)
==350889== 
==350889== LEAK SUMMARY:
==350889==    definitely lost: 0 bytes in 0 blocks
==350889==    indirectly lost: 0 bytes in 0 blocks
==350889==      possibly lost: 0 bytes in 0 blocks
==350889==    still reachable: 264,646 bytes in 1,594 blocks
==350889==         suppressed: 0 bytes in 0 blocks
==350889== 
==350889== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Doesn't display well in tiling WM

Hello, I am running havoc inside the Sway WM, and for some reason the terminal does not display well in the WM in tiling mode. The terminal displays fine in floating mode & fullscreen mode.

In tiling mode, there is a dark grey border around the window (very visible since my colors are solarized dark).

Not only this, but when using the terminal, normal ascii text output from the terminal gets chopped off at these borders, resulting in some ugly visual effects (and also clipping some of the displayed text).

Here's an example screenshot:

20190612

arch linux pacman progress bars offset one line

I'm running havoc git on sway on arch linux.

When I execute pacman commands such as "sudo pacman -Syy" in havoc, the progress bars are displayed offset one line:
havoc_pacman

If I run the same command in sakura, they are displayed correctly:
sakura_pacman

Havoc outputs the following when running "sudo pacman -Syy":
unhandled CSI sequence F
unhandled CSI sequence E
unhandled CSI sequence F
unhandled CSI sequence E
unhandled CSI sequence F
unhandled CSI sequence E

Font features: OpenType support, multiple styles

Currently, only a single path to a TrueType font is supported. Supporting multiple fonts for bold/italic styles would be appreciated.

Many fonts (inc. Nerd Fonts) are only available as .otf files, and need to be converted to TrueType fonts for use in Havoc. Support for OpenType fonts would make it easier to use these fonts.

terminal codes for adjusting screen by vim dont work

On 1a5a6ce see the righthand side

Starting vim

starting_vim

After quitting vim

vim_terminal_codes

Bottom left you see the according console output, which shows unhandled control sequences.
Not sure, which ones you want to implement cause there are a big pile of them.

Neovim however works fine.

How to use clipboard?

Selected text does transfer to PRIMARY buffer, and from there can be pasted, for instance, with middle mouse click or triple tap. But I wonder if there is a way to use the CLIPBOARD buffer. Most applications favour it anyway, and there is even a conversation in the direction of limiting and eventually dropping the PRIMARY support.

It is generally considered that Ctrl+Shift+C may be used to copy and Ctrl+Shift+V to paste from the CLIPBOARD buffer. Such key bindings would not overshadow any terminal input.

Bold is not bright.

Havoc should probably support reading a bold variant of the selected font. This could be done with FontConfig, or by adding a bold setting under [font].

maximizing window sends SIGABRT which segfaults afterwards

Running with gdb --ex run ./havoc and maximizing (moving out of bound on upper part) in KDE Plasma on Wayland has the following behavior. Note, that resizing to halfsize (left and right side) or moving terminal out of bounds does not have the problem.

Starting program: /home/misterspoon/dev/git/c/havoc/havoc 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Detaching after fork from child process 376481]

Program received signal SIGABRT, Aborted.
0x00007ffff7c56d22 in raise () from /usr/lib/libc.so.6
(gdb) bt
#0  0x00007ffff7c56d22 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff7c40862 in abort () from /usr/lib/libc.so.6
#2  0x0000555555559a0f in main ()

Valgrind with valgrind ./havoc shows additionally

==376548== Process terminating with default action of signal 6 (SIGABRT): dumping core
==376548==    at 0x4A6BD22: raise (in /usr/lib/libc-2.33.so)
==376548==    by 0x4A55861: abort (in /usr/lib/libc-2.33.so)
==376548==    by 0x10DA0E: main (in /home/misterspoon/dev/git/c/havoc/havoc)

Add scrollback keyboard shortcut

possible default configuration (but it should be configurable):

  • Shift+ArrowUp/Down should scroll one line
  • Shift+PageUp/Down should scroll one screen

Thanks :)

SailfishOS port

I was trying to package havoc for Sailfish OS, and was surprised I could actually build it on SFOS 3.3.0.16 with this (for reference to remember which packages were necessary)

git clone https://github.com/ii8/havoc.git
cd havoc
devel-su
zypper install wayland-protocols-devel
zypper install libxkbcommon-devel
zypper install wayland-devel
exit
make CFLAGS="-O2 -DNDEBUG"
devel-su make install

I now have the proper binary in /usr/local/bin, unfortunately I get this when trying to execute it:

[nemo@Sailfish havoc]$ havoc
could not open font file: No such file or directory
using fallback font
your compositor does not support xdg_wm_base, make sure you have the latest version

I am not a coder at all, and am not familiar with how compositors work (or even what they are exactly), but SailfishOS does use Wayland. This is the version we have: 1.17.0+git1-1.4.1.jolla.

Is there any hope, or does havoc depend on a more recent version? Another SFOS user told me this:

<Nico[m]> Sailfish doesn't have a concept of maximize, minimize, etc, so wm_base doesn't make much sense. You can probably rip that out and it may work fine

Would that be doable? What should I look for in the sources?

Alternatively, we have some partial Flatpak support on SFOS (just in case you would be planning on a Flatpak release in the future).

Can not build; no rule for xdg-shell.c

I get this error: make: *** No rule to make target 'xdg-shell.c', needed by 'xdg-shell.o'. Stop.

I am getting my dependencies from nixpkgs, but building manually.

Any ideas?

CJK font support

Hi again!
I found CJK font cannot show correctly in this minimal terminal, is there possible to add this feature? Any advice will be appreciated.

Mouse cursor isn't drawn in the window.

Using the latest master, the mouse cursor isn't drawn when it is inside the havoc window. I am on Void Linux, using Sway 1.4. It worked properly before commit 8b9a4ae.

I found this new error appearing which I can not reproduce on a build before the commit mentioned above:

unknown parameter to CSI-J: 3

Havoc won't display system cursor.

At first I thought this was a problem with my system (as in I didn't have any cursor theme installed), then I installed one (Vanilla-DMZ) but the problem was still happening and it only occurs while hovering over Havoc, after leaving the cursor it returns to normal.

If this is intentional, please allow a way to configure this on havoc.cfg as it confuses me while I am on my workflow. By the way, this project is amazing and I am very happy to use it!

Relevant information:
OS: FreeBSD
Compositor: Sway
Compiled using the ports system from FreeBSD.

Can't copy and paste between havoc and qt applications

I just realized that I can't copy and paste between havoc and qt apps. Like, when I copy text from havoc and then I try to paste to qt apps, the text isn't copied. Or when I copy text from qt apps and paste to havoc, the text isn't copied.

Support non-monospace fonts

Fonts like Nerd Fonts use double-width symbols to allow using icons in shell prompts and tmux statuslines. Currently, double-width characters are cut-off at half their width.

Support dynamic title

currently always havoc displayed in the title bar and never changes.
title should be dynamic and provided title by shell should be displayed instead.

valgrind: ioctl has no size/direction hints

Taken from memcheck in valgrind:

==350889== Warning: noted but unhandled ioctl 0x5441 with no size/direction hints.
==350889==    This could cause spurious value errors to appear.
==350889==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.

What I find really weird is that it shows up 0x5441, when I have in /usr/include/asm-generic/ioctls.h

#define TIOCSWINSZ	0x5414

At least thats where clangd leads me to on goto symbol definition.

This looks like a valgrind bug.

clicking on word/line does not select it

Hello again, ii8. In some terminal emulators, double-clicking on a word selects that word and triple-clicking on a word selects the whole line that word appears on. Havoc is not exhibiting either selection behavior.

Is this something that has to be enabled at build time? I'm using havoc 0.5.0 on linux x86_64 and it was build like this. Maybe a configuration option needs to be set in ~/.config/havoc.cfg? Or is absence of this behavior by design due to the minimalistic philosophy?

havoc doesn't display alsamixer / ncurses box-drawing characters correctly with RobotoMono font

I'm running havoc git on sway on arch linux.

If I set my font to RobotoMono in havoc.cfg like so:
[font]
path=/usr/share/fonts/TTF/RobotoMono-Regular.ttf
then the box drawing characters aren't displayed correctly when running alsamixer:
havoc_alsamixer_RobotoMono

If I change my font to JetBrainsMonoNL-Regular.ttf then it's displayed correctly:
havoc_alsamixer_JetBrainsMonoNL

If I use sakura with RobotoMono, it's displayed correctly:
sakura_alsamixer_RobotoMono

Since RobotoMono works with sakura, it appears the problem is with havoc.

yes command causes "Broken pipe" errors in terminal

I have two Tiny Core Linux boxes. One runs X with fluxbox and has various terminal emulators (aterm, urxvt, xterm). The other box has Wayland with labwc and has havoc terminal emulator.

Shell scripts that use the yes command work fine in all terminal emulators in X. In havoc, at best the scripts show errors like this (when using Busybox):

yes: Broken pipe

or like this (when using GNU coreutils):

yes: standard output: Broken pipe

At worse, the script hangs indefinitely, causes CPU usage to go way up, and laptop fans to come on. I can reproduce this worse case scenario in havoc with this command:

yes "myPassword" | bcrypt someFile.txt

Any ideas what the issue is and how to fix?

EDIT: I should have given some details about my setup.
havoc: 0.5.0-git
wayland: 1.22.0
labwc: 0.6.5
OS: Tiny Core Linux 14 x86_64
linux: 6.1.2
busybox: 1.36.0
coreutils: 9.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.