forked from speedie/spmenu
fix segmentation fault when specifying a font in xrdb
This commit is contained in:
parent
392e5bfffc
commit
d9bfcb067a
|
@ -1,6 +1,12 @@
|
||||||
! spmenu default configuration in .Xresources format
|
! spmenu 0.2.2 default configuration
|
||||||
|
!
|
||||||
|
! You may copy this configuration file to ~/.config/spmenu/spmenurc OR ~/.spmenurc, it will be loaded on runtime.
|
||||||
|
! It is .Xresources syntax. As such you may also append it to your existing .Xresources configuration, use programs like Pywal to have universal colorschemes.
|
||||||
|
|
||||||
|
!! Fonts
|
||||||
spmenu.font: Noto Sans Mono 8
|
spmenu.font: Noto Sans Mono 8
|
||||||
|
|
||||||
|
!! Colors
|
||||||
spmenu.col_itemnormfg: #bbbbbb
|
spmenu.col_itemnormfg: #bbbbbb
|
||||||
spmenu.col_itemnormbg: #222222
|
spmenu.col_itemnormbg: #222222
|
||||||
spmenu.col_itemselfg: #eeeeee
|
spmenu.col_itemselfg: #eeeeee
|
||||||
|
@ -44,35 +50,50 @@ spmenu.col_sgrcolor12: #0000ff
|
||||||
spmenu.col_sgrcolor13: #ff00ff
|
spmenu.col_sgrcolor13: #ff00ff
|
||||||
spmenu.col_sgrcolor14: #00ffff
|
spmenu.col_sgrcolor14: #00ffff
|
||||||
spmenu.col_sgrcolor15: #ffffff
|
spmenu.col_sgrcolor15: #ffffff
|
||||||
|
|
||||||
|
!! Misc color
|
||||||
spmenu.alpha: 1
|
spmenu.alpha: 1
|
||||||
|
|
||||||
|
!! Width
|
||||||
spmenu.accuratewidth: 1
|
spmenu.accuratewidth: 1
|
||||||
spmenu.borderwidth: 0
|
spmenu.borderwidth: 0
|
||||||
|
|
||||||
|
!! Lines and columns
|
||||||
spmenu.lineheight: 5
|
spmenu.lineheight: 5
|
||||||
spmenu.lines: 0
|
spmenu.lines: 0
|
||||||
spmenu.columns: 10
|
spmenu.columns: 10
|
||||||
|
spmenu.preselected: 0
|
||||||
|
spmenu.indentitems: 1
|
||||||
|
|
||||||
|
!! History
|
||||||
spmenu.maxhist: 64
|
spmenu.maxhist: 64
|
||||||
spmenu.histnodup: 1
|
spmenu.histnodup: 1
|
||||||
|
|
||||||
|
!! Input
|
||||||
|
spmenu.type: 1
|
||||||
spmenu.casesensitive: 0
|
spmenu.casesensitive: 0
|
||||||
|
|
||||||
|
!! Menu
|
||||||
spmenu.menuposition: 1
|
spmenu.menuposition: 1
|
||||||
spmenu.menupaddingv: 0
|
spmenu.menupaddingv: 0
|
||||||
spmenu.menupaddingh: 0
|
spmenu.menupaddingh: 0
|
||||||
spmenu.preselected: 0
|
|
||||||
spmenu.type: 1
|
!! General
|
||||||
spmenu.class: spmenu
|
spmenu.class: spmenu
|
||||||
|
spmenu.fast: 0
|
||||||
spmenu.mon: -1
|
spmenu.mon: -1
|
||||||
spmenu.managed: 0
|
|
||||||
spmenu.loadconfig: 0
|
!! Image
|
||||||
spmenu.leftarrow: <
|
|
||||||
spmenu.rightarrow: >
|
|
||||||
spmenu.password: .
|
|
||||||
spmenu.imagewidth: 86
|
spmenu.imagewidth: 86
|
||||||
spmenu.imageheight: 86
|
spmenu.imageheight: 86
|
||||||
spmenu.imagegaps: 0
|
spmenu.imagegaps: 0
|
||||||
spmenu.imageposition: 0
|
spmenu.imageposition: 0
|
||||||
spmenu.generatecache: 1
|
spmenu.generatecache: 1
|
||||||
|
|
||||||
|
!! Mode options
|
||||||
spmenu.mode: 0
|
spmenu.mode: 0
|
||||||
spmenu.fast: 0
|
|
||||||
spmenu.indentitems: 1
|
!! Hide options
|
||||||
spmenu.hidematchcount: 0
|
spmenu.hidematchcount: 0
|
||||||
spmenu.hidemode: 0
|
spmenu.hidemode: 0
|
||||||
spmenu.hidelarrow: 0
|
spmenu.hidelarrow: 0
|
||||||
|
@ -81,8 +102,13 @@ spmenu.hideprompt: 0
|
||||||
spmenu.hidecursor: 0
|
spmenu.hidecursor: 0
|
||||||
spmenu.hidehighlight: 0
|
spmenu.hidehighlight: 0
|
||||||
spmenu.hideimage: 0
|
spmenu.hideimage: 0
|
||||||
|
|
||||||
|
!! Text
|
||||||
spmenu.normtext: Normal
|
spmenu.normtext: Normal
|
||||||
spmenu.instext: Insert
|
spmenu.instext: Insert
|
||||||
|
spmenu.password: .
|
||||||
|
|
||||||
|
!! Pango markup toggles
|
||||||
spmenu.pango_item: 1
|
spmenu.pango_item: 1
|
||||||
spmenu.pango_prompt: 1
|
spmenu.pango_prompt: 1
|
||||||
spmenu.pango_input: 1
|
spmenu.pango_input: 1
|
||||||
|
|
|
@ -3,8 +3,6 @@ readargs(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
XrmInitialize();
|
|
||||||
|
|
||||||
for (i = 1; i < argc; i++) {
|
for (i = 1; i < argc; i++) {
|
||||||
/* xrdb first as it overrides other options */
|
/* xrdb first as it overrides other options */
|
||||||
if (!strcmp(argv[i], "-xrdb")) /* xresources */
|
if (!strcmp(argv[i], "-xrdb")) /* xresources */
|
||||||
|
@ -18,9 +16,9 @@ readargs(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (xresources) {
|
if (xresources) {
|
||||||
if (loadconfig) {
|
XrmInitialize();
|
||||||
load_xresources();
|
|
||||||
|
|
||||||
|
if (loadconfig) {
|
||||||
int cxrdb = system("[ -e $HOME/.config/spmenu/spmenurc ] && xrdb -override $HOME/.config/spmenu/spmenurc");
|
int cxrdb = system("[ -e $HOME/.config/spmenu/spmenurc ] && xrdb -override $HOME/.config/spmenu/spmenurc");
|
||||||
int hxrdb = system("[ -e $HOME/.spmenurc ] && xrdb -override $HOME/.spmenurc");
|
int hxrdb = system("[ -e $HOME/.spmenurc ] && xrdb -override $HOME/.spmenurc");
|
||||||
}
|
}
|
||||||
|
@ -182,7 +180,7 @@ readargs(int argc, char *argv[])
|
||||||
else if (!strcmp(argv[i], "-p")) /* adds prompt to left of input field */
|
else if (!strcmp(argv[i], "-p")) /* adds prompt to left of input field */
|
||||||
prompt = argv[++i];
|
prompt = argv[++i];
|
||||||
else if (!strcmp(argv[i], "-fn")) /* font or font set */
|
else if (!strcmp(argv[i], "-fn")) /* font or font set */
|
||||||
font[0] = argv[++i];
|
fonts[0] = argv[++i];
|
||||||
else if (!strcmp(argv[i], "-nmt")) /* normal mode text */
|
else if (!strcmp(argv[i], "-nmt")) /* normal mode text */
|
||||||
strcpy(normtext, argv[++i]);
|
strcpy(normtext, argv[++i]);
|
||||||
else if (!strcmp(argv[i], "-imt")) { /* insert mode text */
|
else if (!strcmp(argv[i], "-imt")) { /* insert mode text */
|
||||||
|
|
|
@ -134,7 +134,6 @@ ResourcePref resources[] = {
|
||||||
{ "generatecache", INTEGER, &generatecache },
|
{ "generatecache", INTEGER, &generatecache },
|
||||||
{ "mode", INTEGER, &mode },
|
{ "mode", INTEGER, &mode },
|
||||||
{ "fast", INTEGER, &fast },
|
{ "fast", INTEGER, &fast },
|
||||||
{ "loadconfig", INTEGER, &loadconfig },
|
|
||||||
{ "managed", INTEGER, &managed },
|
{ "managed", INTEGER, &managed },
|
||||||
{ "mon", INTEGER, &mon },
|
{ "mon", INTEGER, &mon },
|
||||||
{ "pango_item", INTEGER, &pango_item },
|
{ "pango_item", INTEGER, &pango_item },
|
||||||
|
|
|
@ -35,7 +35,7 @@ static char instext[] = "Insert"; /* Text to display for insert
|
||||||
static int borderwidth = 2; /* Width of the border */
|
static int borderwidth = 2; /* Width of the border */
|
||||||
|
|
||||||
/* Font options */
|
/* Font options */
|
||||||
static char *font[] = { "Noto Sans Mono 8" }; /* Font to draw text and Pango markup with. */
|
static char font[] = "Noto Sans Mono 8"; /* Font to draw text and Pango markup with. */
|
||||||
|
|
||||||
/* Symbol options */
|
/* Symbol options */
|
||||||
static char *leftarrow = "<"; /* Left arrow, used to indicate you can move to the left */
|
static char *leftarrow = "<"; /* Left arrow, used to indicate you can move to the left */
|
||||||
|
|
4
spmenu.c
4
spmenu.c
|
@ -215,6 +215,8 @@ static int max_textw(void);
|
||||||
#include "libs/xresources.h"
|
#include "libs/xresources.h"
|
||||||
#include "libs/colors.h"
|
#include "libs/colors.h"
|
||||||
|
|
||||||
|
static char *fonts[] = { font };
|
||||||
|
|
||||||
static char * cistrstr(const char *s, const char *sub);
|
static char * cistrstr(const char *s, const char *sub);
|
||||||
static int (*fstrncmp)(const char *, const char *, size_t) = strncasecmp;
|
static int (*fstrncmp)(const char *, const char *, size_t) = strncasecmp;
|
||||||
static char *(*fstrstr)(const char *, const char *) = cistrstr;
|
static char *(*fstrstr)(const char *, const char *) = cistrstr;
|
||||||
|
@ -841,7 +843,7 @@ main(int argc, char *argv[])
|
||||||
xinitvisual();
|
xinitvisual();
|
||||||
drw = drw_create(dpy, screen, root, wa.width, wa.height, visual, depth, cmap);
|
drw = drw_create(dpy, screen, root, wa.width, wa.height, visual, depth, cmap);
|
||||||
|
|
||||||
if (!drw_font_create(drw, font, LENGTH(font)))
|
if (!drw_font_create(drw, fonts, LENGTH(fonts)))
|
||||||
die("no fonts could be loaded.");
|
die("no fonts could be loaded.");
|
||||||
lrpad = drw->font->h;
|
lrpad = drw->font->h;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue