mirror of https://github.com/xzeldon/htop.git
add option (-U, --no-unicode) to disable unicode at runtime
This commit is contained in:
parent
f5b3e8d2a3
commit
db5adbeae0
6
CRT.c
6
CRT.c
|
@ -667,7 +667,7 @@ void CRT_restorePrivileges() {
|
|||
|
||||
// TODO: pass an instance of Settings instead.
|
||||
|
||||
void CRT_init(int delay, int colorScheme) {
|
||||
void CRT_init(int delay, int colorScheme, bool allowUnicode) {
|
||||
initscr();
|
||||
noecho();
|
||||
CRT_delay = delay;
|
||||
|
@ -733,10 +733,12 @@ void CRT_init(int delay, int colorScheme) {
|
|||
setlocale(LC_CTYPE, "");
|
||||
|
||||
#ifdef HAVE_LIBNCURSESW
|
||||
if(strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
|
||||
if (allowUnicode && strcmp(nl_langinfo(CODESET), "UTF-8") == 0)
|
||||
CRT_utf8 = true;
|
||||
else
|
||||
CRT_utf8 = false;
|
||||
#else
|
||||
(void) allowUnicode;
|
||||
#endif
|
||||
|
||||
CRT_treeStr =
|
||||
|
|
2
CRT.h
2
CRT.h
|
@ -189,7 +189,7 @@ extern void CRT_restorePrivileges();
|
|||
|
||||
// TODO: pass an instance of Settings instead.
|
||||
|
||||
extern void CRT_init(int delay, int colorScheme);
|
||||
extern void CRT_init(int delay, int colorScheme, bool allowUnicode);
|
||||
|
||||
extern void CRT_done();
|
||||
|
||||
|
|
|
@ -48,6 +48,9 @@ Sort by this column (use \-\-sort\-key help for a column list)
|
|||
\fB\-u \-\-user=USERNAME\fR
|
||||
Show only the processes of a given user
|
||||
.TP
|
||||
\fB\-U \-\-no-unicode\fR
|
||||
Do not use unicode but ASCII characters for graph meters
|
||||
.TP
|
||||
\fB\-v \-\-version
|
||||
Output version information and exit
|
||||
.TP
|
||||
|
|
31
htop.c
31
htop.c
|
@ -43,6 +43,7 @@ static void printHelpFlag() {
|
|||
"-s --sort-key=COLUMN Sort by COLUMN (try --sort-key=help for a list)\n"
|
||||
"-t --tree Show the tree view by default\n"
|
||||
"-u --user[=USERNAME] Show only processes for a given user (or $USER)\n"
|
||||
"-U --no-unicode Do not use unicode but plain ASCII\n"
|
||||
"-p --pid=PID,[,PID,PID...] Show only the given PIDs\n"
|
||||
"-v --version Print version info\n"
|
||||
"\n"
|
||||
|
@ -63,6 +64,7 @@ typedef struct CommandLineSettings_ {
|
|||
bool useColors;
|
||||
bool enableMouse;
|
||||
bool treeView;
|
||||
bool allowUnicode;
|
||||
} CommandLineSettings;
|
||||
|
||||
static CommandLineSettings parseArguments(int argc, char** argv) {
|
||||
|
@ -75,26 +77,28 @@ static CommandLineSettings parseArguments(int argc, char** argv) {
|
|||
.useColors = true,
|
||||
.enableMouse = true,
|
||||
.treeView = false,
|
||||
.allowUnicode = true,
|
||||
};
|
||||
|
||||
static struct option long_opts[] =
|
||||
{
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"version", no_argument, 0, 'v'},
|
||||
{"delay", required_argument, 0, 'd'},
|
||||
{"sort-key", required_argument, 0, 's'},
|
||||
{"user", optional_argument, 0, 'u'},
|
||||
{"no-color", no_argument, 0, 'C'},
|
||||
{"no-colour",no_argument, 0, 'C'},
|
||||
{"no-mouse", no_argument, 0, 'm'},
|
||||
{"tree", no_argument, 0, 't'},
|
||||
{"pid", required_argument, 0, 'p'},
|
||||
{"help", no_argument, 0, 'h'},
|
||||
{"version", no_argument, 0, 'v'},
|
||||
{"delay", required_argument, 0, 'd'},
|
||||
{"sort-key", required_argument, 0, 's'},
|
||||
{"user", optional_argument, 0, 'u'},
|
||||
{"no-color", no_argument, 0, 'C'},
|
||||
{"no-colour", no_argument, 0, 'C'},
|
||||
{"no-mouse", no_argument, 0, 'm'},
|
||||
{"no-unicode", no_argument, 0, 'U'},
|
||||
{"tree", no_argument, 0, 't'},
|
||||
{"pid", required_argument, 0, 'p'},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
int opt, opti=0;
|
||||
/* Parse arguments */
|
||||
while ((opt = getopt_long(argc, argv, "hvmCs:td:u::p:", long_opts, &opti))) {
|
||||
while ((opt = getopt_long(argc, argv, "hvmCs:td:u:Up:", long_opts, &opti))) {
|
||||
if (opt == EOF) break;
|
||||
switch (opt) {
|
||||
case 'h':
|
||||
|
@ -148,6 +152,9 @@ static CommandLineSettings parseArguments(int argc, char** argv) {
|
|||
case 'm':
|
||||
flags.enableMouse = false;
|
||||
break;
|
||||
case 'U':
|
||||
flags.allowUnicode = false;
|
||||
break;
|
||||
case 't':
|
||||
flags.treeView = true;
|
||||
break;
|
||||
|
@ -226,7 +233,7 @@ int main(int argc, char** argv) {
|
|||
if (flags.treeView)
|
||||
settings->treeView = true;
|
||||
|
||||
CRT_init(settings->delay, settings->colorScheme);
|
||||
CRT_init(settings->delay, settings->colorScheme, flags.allowUnicode);
|
||||
|
||||
MainPanel* panel = MainPanel_new();
|
||||
ProcessList_setPanel(pl, (Panel*) panel);
|
||||
|
|
Loading…
Reference in New Issue