From 7cf4d505a1dcc54a50ef07f7a89cd950492d032b Mon Sep 17 00:00:00 2001 From: mrsu Date: Fri, 14 Jun 2024 11:41:13 +0100 Subject: [PATCH] git rm bins --- .gitignore | 8 +++++ Makefile | 10 ++++-- config.def.h | 2 +- config.h | 25 --------------- config.mk | 2 +- dmenu | Bin 43120 -> 0 bytes dmenu.1 | 5 +++ dmenu.c | 9 ++++-- dmenu.o | Bin 34592 -> 0 bytes dmenu_path | 13 -------- dmenu_run | 2 -- drw.c | 23 +++++++------- drw.o | Bin 11128 -> 0 bytes patches/dmenu-initialtext-4.7.diff | 49 +++++++++++++++++++++++++++++ stest | Bin 16408 -> 16432 bytes stest.o | Bin 5248 -> 0 bytes util.h | 1 - util.o | Bin 2224 -> 0 bytes 18 files changed, 90 insertions(+), 59 deletions(-) create mode 100644 .gitignore delete mode 100644 config.h delete mode 100755 dmenu delete mode 100644 dmenu.o delete mode 100755 dmenu_path delete mode 100755 dmenu_run delete mode 100644 drw.o create mode 100644 patches/dmenu-initialtext-4.7.diff delete mode 100644 stest.o delete mode 100644 util.o diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..97ba8b9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.o +*.orig +*.rej +dmenu +config.h +dmenu_path +dmenu_run +stest diff --git a/Makefile b/Makefile index 458c524..a03a95c 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,13 @@ include config.mk SRC = drw.c dmenu.c stest.c util.c OBJ = $(SRC:.c=.o) -all: dmenu stest +all: options dmenu stest + +options: + @echo dmenu build options: + @echo "CFLAGS = $(CFLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" + @echo "CC = $(CC)" .c.o: $(CC) -c $(CFLAGS) $< @@ -55,4 +61,4 @@ uninstall: $(DESTDIR)$(MANPREFIX)/man1/dmenu.1\ $(DESTDIR)$(MANPREFIX)/man1/stest.1 -.PHONY: all clean dist install uninstall +.PHONY: all options clean dist install uninstall diff --git a/config.def.h b/config.def.h index 8ddc0b3..e63c997 100644 --- a/config.def.h +++ b/config.def.h @@ -5,7 +5,7 @@ static int topbar = 1; /* -b option; if 0, dmenu appears a static int fuzzy = 1; /* -F option; if 0, dmenu doesn't use fuzzy matching */ /* -fn option overrides fonts[0]; default X11 font or font set */ static const char *fonts[] = { - "Hack Nerd Font:size=14", + "monospace:size=14", "NotoColorEmoji:pixelsize=48:antialias=true:autohint=true" }; static const char *prompt = NULL; /* -p option; prompt to the left of input field */ diff --git a/config.h b/config.h deleted file mode 100644 index 8ddc0b3..0000000 --- a/config.h +++ /dev/null @@ -1,25 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -/* Default settings; can be overriden by command line. */ - -static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */ -static int fuzzy = 1; /* -F option; if 0, dmenu doesn't use fuzzy matching */ -/* -fn option overrides fonts[0]; default X11 font or font set */ -static const char *fonts[] = { - "Hack Nerd Font:size=14", - "NotoColorEmoji:pixelsize=48:antialias=true:autohint=true" -}; -static const char *prompt = NULL; /* -p option; prompt to the left of input field */ -static const char *colors[SchemeLast][2] = { - /* fg bg */ - [SchemeNorm] = { "#ebdbb2", "#282828" }, - [SchemeSel] = { "#ffffff", "#005577" }, - [SchemeOut] = { "#000000", "#00ffff" }, -}; -/* -l option; if nonzero, dmenu uses vertical list with given number of lines */ -static unsigned int lines = 0; - -/* - * Characters not considered part of a word while deleting words - * for example: " /?\"&[]" - */ -static const char worddelimiters[] = " "; diff --git a/config.mk b/config.mk index 6a19175..fd6ff05 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # dmenu version -VERSION = 5.3 +VERSION = 5.2 # paths PREFIX = /usr/local diff --git a/dmenu b/dmenu deleted file mode 100755 index 1b775aea0c3020064dee6bf2435f50005917ba7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43120 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 N&hY|gq`jH{e*iozJ|6%8 diff --git a/dmenu_path b/dmenu_path deleted file mode 100755 index 3a7cda7..0000000 --- a/dmenu_path +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -cachedir="${XDG_CACHE_HOME:-"$HOME/.cache"}" -cache="$cachedir/dmenu_run" - -[ ! -e "$cachedir" ] && mkdir -p "$cachedir" - -IFS=: -if stest -dqr -n "$cache" $PATH; then - stest -flx $PATH | sort -u | tee "$cache" -else - cat "$cache" -fi diff --git a/dmenu_run b/dmenu_run deleted file mode 100755 index 834ede5..0000000 --- a/dmenu_run +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} & diff --git a/drw.c b/drw.c index 78a2b27..a58a2b4 100644 --- a/drw.c +++ b/drw.c @@ -238,8 +238,8 @@ drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert) { - int ty, ellipsis_x = 0; - unsigned int tmpw, ew, ellipsis_w = 0, ellipsis_len, hash, h0, h1; + int i, ty, ellipsis_x = 0; + unsigned int tmpw, ew, ellipsis_w = 0, ellipsis_len; XftDraw *d = NULL; Fnt *usedfont, *curfont, *nextfont; int utf8strlen, utf8charlen, render = x || y || w || h; @@ -251,7 +251,9 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp XftResult result; int charexists = 0, overflow = 0; /* keep track of a couple codepoints for which we have no match. */ - static unsigned int nomatches[128], ellipsis_width; + enum { nomatches_len = 64 }; + static struct { long codepoint[nomatches_len]; unsigned int idx; } nomatches; + static unsigned int ellipsis_width = 0; if (!drw || (render && (!drw->scheme || !w)) || !text || !drw->fonts) return 0; @@ -336,14 +338,11 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp * character must be drawn. */ charexists = 1; - hash = (unsigned int)utf8codepoint; - hash = ((hash >> 16) ^ hash) * 0x21F0AAAD; - hash = ((hash >> 15) ^ hash) * 0xD35A2D97; - h0 = ((hash >> 15) ^ hash) % LENGTH(nomatches); - h1 = (hash >> 17) % LENGTH(nomatches); - /* avoid expensive XftFontMatch call when we know we won't find a match */ - if (nomatches[h0] == utf8codepoint || nomatches[h1] == utf8codepoint) - goto no_match; + for (i = 0; i < nomatches_len; ++i) { + /* avoid calling XftFontMatch if we know we won't find a match */ + if (utf8codepoint == nomatches.codepoint[i]) + goto no_match; + } fccharset = FcCharSetCreate(); FcCharSetAddChar(fccharset, utf8codepoint); @@ -372,7 +371,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp curfont->next = usedfont; } else { xfont_free(usedfont); - nomatches[nomatches[h0] ? h1 : h0] = utf8codepoint; + nomatches.codepoint[++nomatches.idx % nomatches_len] = utf8codepoint; no_match: usedfont = drw->fonts; } diff --git a/drw.o b/drw.o deleted file mode 100644 index f8e0139554f278c61c7bc5c734e80f2e266272dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11128 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 M{*qHof4lkr7jHY=1poj5 diff --git a/patches/dmenu-initialtext-4.7.diff b/patches/dmenu-initialtext-4.7.diff new file mode 100644 index 0000000..3d84708 --- /dev/null +++ b/patches/dmenu-initialtext-4.7.diff @@ -0,0 +1,49 @@ +diff --git a/dmenu.1 b/dmenu.1 +index 9eab758..b4947f9 100644 +--- a/dmenu.1 ++++ b/dmenu.1 +@@ -22,6 +22,8 @@ dmenu \- dynamic menu + .IR color ] + .RB [ \-w + .IR windowid ] ++.RB [ \-it ++.IR text ] + .P + .BR dmenu_run " ..." + .SH DESCRIPTION +@@ -80,6 +82,9 @@ prints version information to stdout, then exits. + .TP + .BI \-w " windowid" + embed into windowid. ++.TP ++.BI \-it " text". ++start with initial text input. + .SH USAGE + dmenu is completely controlled by the keyboard. Items are selected using the + arrow keys, page up, page down, home, and end. +diff --git a/dmenu.c b/dmenu.c +index d605ab4..0564dfe 100644 +--- a/dmenu.c ++++ b/dmenu.c +@@ -637,7 +637,8 @@ static void + usage(void) + { + fputs("usage: dmenu [-bfiv] [-l lines] [-p prompt] [-fn font] [-m monitor]\n" +- " [-nb color] [-nf color] [-sb color] [-sf color] [-w windowid]\n", stderr); ++ " [-nb color] [-nf color] [-sb color] [-sf color] [-w windowid]\n" ++ " [-it text]\n", stderr); + exit(1); + } + +@@ -680,7 +681,10 @@ main(int argc, char *argv[]) + colors[SchemeSel][ColFg] = argv[++i]; + else if (!strcmp(argv[i], "-w")) /* embedding window id */ + embed = argv[++i]; +- else ++ else if (!strcmp(argv[i], "-it")) { /* embedding window id */ ++ const char * text = argv[++i]; ++ insert(text, strlen(text)); ++ } else + usage(); + + if (!setlocale(LC_CTYPE, "") || !XSupportsLocale()) diff --git a/stest b/stest index 2ea6c385cfc90d92adfefed5cbde772d25d60090..2da67fa6faa75834272fbf09bddbf42ce520da1a 100755 GIT binary patch delta 1585 zcmZWoZA?>F7(S;^X@~ZLr4$wCRckEMV#~({j%%qDdur;(;<_(IG@>)xqL|zU&D7T1 z*5q0*ew-~~i)3nMvLD7sx-BM4SPc^rvmdx0o0*BYWFME+i1p3{@SmlOD8MQOs0jITL=pv$MKMy!u#$JAr6K^Vod|1>O#7AF?RX_EAu}ZEC12{cQd4nQ-0xcuCAvZ|0_v{f!Q$f<} zkS`lnZ${Jy{ip)m`sJsLMK=-kDLHbt0UGQe z>E%n@M%arkHyDWem}s)gqOSoClv(72O3T#^pD#3krH zLK4~r@cJ8y6nqI00lA_`D_#Pc0r*Oh<{F`k70F?ERORfx34RF`+T>VN`wyRhTs#qU zEi4q08=+Z6`iH6ryNUncJoO$23^~P?kTurigd>CoefK{ zgOrD~+Xj>}pt2Xbfi(-Ms|MJ~L7wbm!^@Q`?=PIrbe_&HpBrCe*o_J;LbA&stu#nW z6sevI#>F>(~%xVqmNZI74C-&8>U{ zY{~72m+k`Ns3C@AONH%KSH6`LOr2%J^DLrEzvjHX9-O- zd*{I2_$*_m0CaXfU&O9N)N}Uaqqm7}I|9W;wTaG6Q$%l`Xn>s3%6rDtQ^ug&kFwI& z*>=r(I$rz@h8+1?pc-eunV%rKEQkmh9biFg$_PmKv+WnHr#UmitiD`?!FMGQ(Kq<) zxhGumZoHU)<;*XP>dimS0mUsu4;Qm!>#Vrt0w2>ZpPgt=jVTZzX*a8fLpQM-hQKqK zgn?}0lJVK!P{vN`O{Z{!&zrxuPIl zLDD5KUhP&?yFZGYd>YKCfH;{+2yHta)qdefKNOT7fmmMM>)bf%&#H1i?R3rcwDX*M z&ecNn`rgonP;Y2ssBerWTvgpe;9~BMB?wLSH%RkSPyla9{uvM$|4;mAd#Jcc+9vWl zwBca4r1?qC8=EE7XphOB-&>)@%_MED zsWp{TzFGhvPFH+(V;w|6p~e1e?gGH7{2uHH#fy@=QG@cED!<81#hDKKyfx?^LNbb> zA{4)>%C8=BR|Mq$xtBxquqxM@G9{|K&}7u*UH&Pe-86>iD))k>2fSaUWGd{dwo0jP zXib&xa4ZfHlcsZJ-cR(ee1`$#aZx(#Ui8Khm;`AH`(o1mY50Xy`IyOl21Z^Dw}MN* zVY;a4D*I36uv2N^tm*uKJ9)AlCd-%ij9OA(Z*mQ|X{tVfG>K_R_LH8Hedxv?Vv3rHtsD7i>+#Lhj`0tsmb(KFP!a&l>r?-C)Mf`cs%21NDE@1A<*FW1{woR zje$l#Jt@qiF{_o1H&#_|nc*)ggdup5NI)VwIDr5K-~YnCl_jC%_4;~8z)MFG#HYl1EKDAj^N?4*~2LC2n!0>MLvUY!3A-G44- diff --git a/stest.o b/stest.o deleted file mode 100644 index b5e34a1dc86c45c2d77f8201845195f7f65c3713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5248 zcmbuCeQaCR6~M3Ue3%CO(xxjJUo+GJqmj2bFi1NU#fbyY;I7fSz_cdBj{WknI(D$1 zo6v#kDt5s&E@q2${zj~t(6-D&EofAXAj_*j zN`DbU`1{&QyGJgvHyJ9>}t!prph}~(^hGSutr+(o7nop z+MVEI2cMR8iwIn2pw6TG8t1mBOPm-G8{7^FYw8Fc{KJL$L&aXIGuFF_G=dQo8_9jrHUJaMtHcGBQb$9s=-|A&Y z@aO~sn;*PfxS$nIfJ%7B+gkC5P|(hPP`U4Wp~`_1s~R5*Kw7*>kaLl^8(9OPNJ^a?O5Dh3CY+)a%NkES(F zTh1td&AO*{AySFeQSO4+mM%t0ADo42j73WJj@(t(7+d~Xr1UpIYA3-~46b%6 zP$iELC8K=Yhl>xJbt}Kjnwu3j$-b%JWN<3@NO1ZbyMJ_ar`Lb~*C%fG1_t#(J>VT2 z7`$^}a3BCtm>`C=R8*)yB+m@Egpr((SnZ>Q48wpbQsCz z%!8h8KV$>M!gxY~9dU*{y{oPVJb!Y!?s0m00R=s7hy*lGlI|YV9r1KO;|zOxkGV!X z-b&ku$NzMD&@*tPBjg!c?R?O4(d+7SdWHZ6J$_Ib@$`bp2>SY8g7a!)@7FidaW!VW zzSRX5s$2yCV%5NW&QODO1mPQF~5&z8mof0)n+L^BK)JkH`0Hw1^-qH zj^o(K&%-VFR0}@Sf@gtmk>bPm9%1Pj?eF(o{cRe!P!EJErESH1CBEBdCU^P=1eQO zkTTh9#xz-a$xI~{GAv`p5}3!6>8y!`Y>N7W8R6Nr1+NGXq)+hH2kDYHo<70FeTDjX zHU-CXhl2iae+j-FAqeu#kObd@5Cr)aNP;% zp+86b*EVkO{lvwCMChl9zeV~u&K^i&oF6KFvZQ|%<-*T0)wd}88LHn#Ir_)g3jcc) zeT(`N_nPqkebW1mqQ8~u-&Oc?RDWLKC#e3S!hcNlUr?^b;Y~&Vr&Rx|!i9ZJ;rzXU zbHfRNsQ#~Q!EYrl;&7V$>I(l6@gd2NybteH^sA)*fTWLqgv7ecNPL^b#TN>jaoMvT?a|{IV$JaA z|B}RCCywL6cs@z>e@psaNxuUXK`_H4=GD`J-zahPe~$d_Adcgd_lXzkDA-IYynYw| zZF2FhiAr4D$sFm~#}=*F4AbEgVCVCqlrfVr-7;4!rYB-njOjD*MbR^9te|>8htE($ z2}mqs<(8NpPcJT-DX>bVEmMcrYd`<;P<<|y)0Z;vS;<(Bk-0fPJ)4Ownl#4$C-Z_a zhE9E14Ff}2l7j_x3NvrRAKX(I>tRT;3~jP&1}+W=?qReQ?eE*?O>PD!sD%t;0G4M7t>;k?MQDso!!u}zJ3wI(PBYQP|+h{=I9VXleJ5e8o z!bb7SW57WCG!Lv|A8P#e0z;nzkYq9GVifn4XcPU5d=eT&S?FMXSX`_!gtDre1l9>j zU9P9dULBVhzi?Y1pQ`;CvOgshDOc_B9lKHdPT{2wV%Qnqe|V0Cz1V*^AGL2ZiPD1h r(mLWB4U=k*|DV*o2Z*g;1ITaetnsVH55I{U* (B) ? (A) : (B)) #define MIN(A, B) ((A) < (B) ? (A) : (B)) #define BETWEEN(X, A, B) ((A) <= (X) && (X) <= (B)) -#define LENGTH(X) (sizeof (X) / sizeof (X)[0]) void die(const char *fmt, ...); void *ecalloc(size_t nmemb, size_t size); diff --git a/util.o b/util.o deleted file mode 100644 index a36344b0bfbdd77381561965a6d8760223457e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2224 zcmbtUO=uHQ5T0$TjWumz?V(Z+E3A@0T{aP+q$<%yyGoE+D{3#ACL0^fpPNldRWM>b zgb?V#qX!Qj6g(94C^YE7t4B}jQK*M{5R?jWX7|1Jv1~3n@R*rzzL_`s=DmGzHhHc` zl7Nc@r(nn9D1f$W$Bx@(9EM;JF6)gg{o(ho2|veCJT(}tvMyAw-So>A)y3)2%{d+SXlms2Gl1(ZyqPh8rK_Ns9~QS(3@!0 z@Ar0M)&1)-#%(mxvDL=F`T&R4>1=HDl9TwjUG?iNyCWNzf1gg}^QCkQV0vmQCWodk zUJ1*Qs2Wuxa#V{R)1q1gYxLoganZ3N1$sbg6UNV8V*Vb)NJbn5(%o5*YC&nt-|t&R z@+jg5S?o9I(?h{WJr{;HS!{yE4zSqOAs<7$746>#KRRB~-tF#oqE0p8aS2Lz z_lDR$TtUVW6@7;ney9r`>Vm6XaGJVTeVmisC-2WbC&VVZ@S$qu@@g8?~A15T6#86U^W^pAV>&<${%3Ky8_hUgVZ(P6_MWhrD$b|RjjIIvxIZAmNAtI8jClwW~yND&i+r!m`+DQvlS)I zoMCoOJmzv?3I?C8|6B1M-Z#&u|0{{t-h}^R`%f@UZ<+h#h3JO3|Ha13q$