Go to file
Hiltjo Posthuma dfbbf7f6e1 readstdin: reduce memory-usage by duplicating the line from getline()
Improves upon commit 32db2b1251

The getline() implementation often uses a more greedy way of allocating memory.
Using this buffer directly and forcing an allocation (by setting it to NULL)
would waste a bit of extra space, depending on the implementation of course.

Tested on musl libc and glibc.
The current glibc version allocates a minimum of 120 bytes per line.
For smaller lines musl libc seems less wasteful but still wastes a few bytes
per line.

On a dmenu_path listing on my system the memory usage was about 350kb (old) vs
30kb (new) on Void Linux glibc.

Side-note that getline() also reads NUL bytes in lines, while strdup() would
read until the NUL byte. Since dmenu reads text lines either is probably
fine(tm). Also rename junk to linesiz.
2023-03-08 21:28:51 +01:00
arg.h arg.h: fixed argv checks order 2016-02-23 00:31:03 +01:00
config.def.h config.def.h: style improvement, use color Scheme enum 2016-06-28 17:56:25 +02:00
config.mk bump version to 5.2 2022-10-04 19:36:02 +02:00
dmenu_path make dmenu_path script executable 2019-02-12 22:13:58 +01:00
dmenu_run dmenu_run: Split cache logic to dmenu_path again 2012-07-30 17:02:12 +02:00
dmenu.1 dmenu.1: document improved fastgrab behaviour from previous patch 2019-01-27 15:28:02 +01:00
dmenu.c readstdin: reduce memory-usage by duplicating the line from getline() 2023-03-08 21:28:51 +01:00
drw.c remove workaround for a crash with color emojis on some systems, now fixed in libXft 2.3.5 2022-09-17 15:32:26 +02:00
drw.h introduce drw_fontset_getwidth_clamp() 2022-03-25 22:49:07 +01:00
LICENSE bump version to 5.1 2022-02-11 12:26:35 +01:00
Makefile Makefile: just show the compiler output 2018-06-02 17:09:01 +02:00
README removed libdc dependence 2010-11-11 23:56:39 +00:00
stest.1 applied Martin Kühl's inverse matching flag to stest 2013-08-13 19:15:04 +02:00
stest.c remove always true condition in if statement 2021-07-25 10:55:45 +02:00
util.c sync code-style patch from libsl 2022-08-08 10:42:54 +02:00
util.h import new drw from libsl and minor fixes. 2016-06-03 19:13:15 +02:00

dmenu - dynamic menu
====================
dmenu is an efficient dynamic menu for X.


Requirements
------------
In order to build dmenu you need the Xlib header files.


Installation
------------
Edit config.mk to match your local setup (dmenu is installed into
the /usr/local namespace by default).

Afterwards enter the following command to build and install dmenu
(if necessary as root):

    make clean install


Running dmenu
-------------
See the man page for details.