Updated manpage, removed unused variables, etc.
• Updated manual page (removing mention to the removed -w option). • Removed unused variables (dc.d). • Freeing item's label and output.
This commit is contained in:
parent
ec4ed1ac1e
commit
6b5123e793
27
xmenu.1
27
xmenu.1
|
@ -3,8 +3,6 @@
|
||||||
xmenu \- menu utility for X
|
xmenu \- menu utility for X
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B xmenu
|
.B xmenu
|
||||||
.RB [ \-w ]
|
|
||||||
.RI [ title... ]
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.B xmenu
|
.B xmenu
|
||||||
is a menu for X,
|
is a menu for X,
|
||||||
|
@ -12,37 +10,28 @@ it reads a list of newline-separated items from stdin,
|
||||||
shows a menu for the user to select one of the items,
|
shows a menu for the user to select one of the items,
|
||||||
and outputs the item selected to stdout.
|
and outputs the item selected to stdout.
|
||||||
.PP
|
.PP
|
||||||
The options are as follows:
|
|
||||||
.TP
|
|
||||||
.B -w
|
|
||||||
Asks the window manager to draw a border around the menus.
|
|
||||||
Without this options, the menus do not have border drawn by the window manager.
|
|
||||||
.PP
|
|
||||||
Each item read from stdin has the following format:
|
Each item read from stdin has the following format:
|
||||||
.IP
|
.IP
|
||||||
.EX
|
.EX
|
||||||
ITEM := TABS LABEL TABS COMMAND NEWLINE
|
ITEM := [TABS] [LABEL [TABS OUTPUT]] NEWLINE
|
||||||
.EE
|
.EE
|
||||||
.PP
|
.PP
|
||||||
That means, each item is composed by
|
That means that each item is composed by
|
||||||
tabs, followed by a label, followed by more tabs, followed by a command,
|
tabs, followed by a label, followed by more tabs, followed by an output,
|
||||||
and ended by a newline.
|
and ended by a newline. Brackets group optional elements.
|
||||||
.IP
|
.IP
|
||||||
The initial tabs indicate the menu hierarchy:
|
The initial tabs indicate the menu hierarchy:
|
||||||
items indented with a tab is shown in a submenu of the preceding item not indented.
|
items indented with a tab is shown in a submenu of the preceding item not indented.
|
||||||
|
An item without initial tabs is a top-level item.
|
||||||
.IP
|
.IP
|
||||||
The label is the string that will be shown as a item in the menu.
|
The label is the string that will be shown as a item in the menu.
|
||||||
An item without label is considered a separator and is drawn as a thin line in the menu
|
An item without label is considered a separator and is drawn as a thin line in the menu
|
||||||
separating the item above from the item below.
|
separating the item above from the item below.
|
||||||
.IP
|
.IP
|
||||||
The command is the string that will be output after selecting the item.
|
The output is the string that will be output after selecting the item.
|
||||||
If the item spawns a submenu, the command is the title of the menu.
|
If an item does not have an output, its label is used as its output.
|
||||||
.IP
|
.IP
|
||||||
The newline terminates the item specification.
|
The newline terminates the item specification.
|
||||||
.PP
|
|
||||||
If the argument
|
|
||||||
.I title
|
|
||||||
is given, the title of the menu window is set to it.
|
|
||||||
.SH USAGE
|
.SH USAGE
|
||||||
.B xmenu
|
.B xmenu
|
||||||
is controlled by the mouse,
|
is controlled by the mouse,
|
||||||
|
@ -113,7 +102,7 @@ creating a command to be run by the shell.
|
||||||
.EX
|
.EX
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
cat <<EOF | xmenu | sh
|
cat <<EOF | xmenu | sh &
|
||||||
Applications
|
Applications
|
||||||
Web Browser firefox
|
Web Browser firefox
|
||||||
Image editor gimp
|
Image editor gimp
|
||||||
|
|
11
xmenu.c
11
xmenu.c
|
@ -28,7 +28,6 @@ struct DC {
|
||||||
XftColor border;
|
XftColor border;
|
||||||
XftColor separator;
|
XftColor separator;
|
||||||
|
|
||||||
Drawable d;
|
|
||||||
GC gc;
|
GC gc;
|
||||||
XftFont *font;
|
XftFont *font;
|
||||||
};
|
};
|
||||||
|
@ -598,14 +597,12 @@ mapmenu(struct Menu *currmenu)
|
||||||
static void
|
static void
|
||||||
drawseparator(struct Menu *menu, struct Item *item)
|
drawseparator(struct Menu *menu, struct Item *item)
|
||||||
{
|
{
|
||||||
int linex, liney, linew;
|
int y;
|
||||||
|
|
||||||
linex = dc.font->height;
|
y = item->y + item->h/2;
|
||||||
liney = item->y + item->h/2;
|
|
||||||
linew = menu->w - dc.font->height;
|
|
||||||
|
|
||||||
XSetForeground(dpy, dc.gc, dc.separator.pixel);
|
XSetForeground(dpy, dc.gc, dc.separator.pixel);
|
||||||
XDrawLine(dpy, menu->pixmap, dc.gc, linex, liney, linew, liney);
|
XDrawLine(dpy, menu->pixmap, dc.gc, 0, y, menu->w, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* draw regular item */
|
/* draw regular item */
|
||||||
|
@ -821,6 +818,8 @@ freemenu(struct Menu *menu)
|
||||||
freemenu(item->submenu);
|
freemenu(item->submenu);
|
||||||
tmp = item;
|
tmp = item;
|
||||||
item = item->next;
|
item = item->next;
|
||||||
|
free(tmp->label);
|
||||||
|
free(tmp->output);
|
||||||
free(tmp);
|
free(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user