COLORS!
This commit is contained in:
parent
4a92182125
commit
00e707993c
26
Makefile
26
Makefile
@ -1,22 +1,14 @@
|
|||||||
DEBUG:=1
|
DEBUG:=1
|
||||||
GCC:=0
|
GCC:=0
|
||||||
|
|
||||||
CC=gcc
|
CC:=gcc
|
||||||
CFLAGS:=-Wall -Wextra -Wpedantic
|
CFLAGS:=-Wall -Wextra -Wpedantic
|
||||||
CPPFLAGS:=${shell pkg-config --cflags ncurses readline}
|
CFLAGS +=$(if $(DEBUG),-O0 -ggdb,-O3 -flto=auto -fomit-frame-pointer)
|
||||||
LDLIBS=-I ${CHDRD} ${shell pkg-config --libs ncurses readline}
|
CFLAGS +=$(if $(SAN),-fsanitize=${SAN})
|
||||||
|
CPPFLAGS:=-I config/ -I ${CHDRD} ${shell pkg-config --cflags ncurses readline}
|
||||||
|
LDLIBS=${shell pkg-config --libs ncurses readline}
|
||||||
LEX:=flex
|
LEX:=flex
|
||||||
|
|
||||||
ifeq (${DEBUG},1)
|
|
||||||
CFLAGS += -O0 -ggdb
|
|
||||||
else
|
|
||||||
CFLAGS += -O3 -flto=auto -fomit-frame-pointer
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef SAN
|
|
||||||
CFLAGS += -fsanitize=${SAN}
|
|
||||||
endif
|
|
||||||
|
|
||||||
LEXD:=src/
|
LEXD:=src/
|
||||||
LEXF:=$(shell find ${LEXD} -iname '*.l')
|
LEXF:=$(shell find ${LEXD} -iname '*.l')
|
||||||
GENLEX:=$(subst .l,.c,${LEXF})
|
GENLEX:=$(subst .l,.c,${LEXF})
|
||||||
@ -27,9 +19,10 @@ SRC:=$(shell find ${SRCD} -iname '*.c') ${GENLEX}
|
|||||||
OBJ:=$(subst .c,.o,$(subst ${SRCD},${OBJD},${SRC}))
|
OBJ:=$(subst .c,.o,$(subst ${SRCD},${OBJD},${SRC}))
|
||||||
|
|
||||||
HDRD:=${SRCD}
|
HDRD:=${SRCD}
|
||||||
|
CONFD:=config/
|
||||||
CHDRD:=${OBJD}
|
CHDRD:=${OBJD}
|
||||||
HDR:=$(shell find ${HDRD} -iname '*.h')
|
HDR:=$(shell find ${HDRD} ${CONFD} -iname '*.h')
|
||||||
CHDR:=$(addsuffix .gch,$(subst ${HDRD},${CHDRD},${HDR}))
|
CHDR:=$(addsuffix .gch,$(subst ${HDRD},${CHDRD},$(subst ${CONFD}, ${CHDRD}, ${HDR})))
|
||||||
|
|
||||||
OUTPUT:=csope
|
OUTPUT:=csope
|
||||||
|
|
||||||
@ -45,6 +38,9 @@ src/%.c: src/%.l
|
|||||||
obj/%.h.gch: src/%.h
|
obj/%.h.gch: src/%.h
|
||||||
${CC} $< -o $@
|
${CC} $< -o $@
|
||||||
|
|
||||||
|
obj/%.h.gch: config/%.h
|
||||||
|
${CC} $< -o $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-rm ${CHDR}
|
-rm ${CHDR}
|
||||||
-rm ${GENLEX}
|
-rm ${GENLEX}
|
||||||
|
92
config/colors.h
Normal file
92
config/colors.h
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
#ifndef CONFIG_H
|
||||||
|
#define CONFIG_H
|
||||||
|
|
||||||
|
/* List of color options:
|
||||||
|
COLOR_BLACK
|
||||||
|
COLOR_RED
|
||||||
|
COLOR_GREEN
|
||||||
|
COLOR_YELLOW
|
||||||
|
COLOR_BLUE
|
||||||
|
COLOR_MAGENTA
|
||||||
|
COLOR_CYAN
|
||||||
|
COLOR_WHITE
|
||||||
|
-1 // for transparent (only works if that is your default terminal background)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* --- Valid presets --- */
|
||||||
|
#define STD_PRESET 1
|
||||||
|
#define COLORFUL_PRESET 2
|
||||||
|
|
||||||
|
/* --- Preset selection --- */
|
||||||
|
#define COLOR_PRESET 2
|
||||||
|
|
||||||
|
#if COLOR_PRESET == 1
|
||||||
|
#elif COLOR_PRESET == 2
|
||||||
|
# define COLOR_FRAME_FG COLOR_GREEN
|
||||||
|
# define COLOR_FRAME_BG -1
|
||||||
|
# define COLOR_PROMPT_FG COLOR_BLUE
|
||||||
|
# define COLOR_PROMPT_BG -1
|
||||||
|
# define COLOR_CURSOR COLOR_WHITE
|
||||||
|
# define COLOR_FIELD_FG COLOR_WHITE
|
||||||
|
# define COLOR_FIELD_BG -1
|
||||||
|
# define COLOR_FIELD_SELECTED_FG COLOR_BLACK
|
||||||
|
# define COLOR_FIELD_SELECTED_BG COLOR_WHITE
|
||||||
|
# define COLOR_HELP_FG COLOR_YELLOW
|
||||||
|
# define COLOR_HELP_BG -1
|
||||||
|
# define COLOR_TOOLTIP_FG COLOR_BLACK
|
||||||
|
# define COLOR_TOOLTIP_BG COLOR_WHITE
|
||||||
|
# define COLOR_MESSAGE_FG COLOR_WHITE
|
||||||
|
# define COLOR_MESSAGE_BG COLOR_BLACK
|
||||||
|
# define COLOR_PATTERN_FG COLOR_WHITE
|
||||||
|
# define COLOR_PATTERN_BG -1
|
||||||
|
# define COLOR_TABLE_HEADER_FG COLOR_YELLOW
|
||||||
|
# define COLOR_TABLE_HEADER_BG -1
|
||||||
|
# define COLOR_TABLE_ID_FG COLOR_CYAN
|
||||||
|
# define COLOR_TABLE_ID_BG -1
|
||||||
|
# define COLOR_TABLE_COL_FILE_FG COLOR_MAGENTA
|
||||||
|
# define COLOR_TABLE_COL_FILE_BG -1
|
||||||
|
# define COLOR_TABLE_COL_FUNCTION_FG COLOR_RED
|
||||||
|
# define COLOR_TABLE_COL_FUNCTION_BG -1
|
||||||
|
# define COLOR_TABLE_COL_LINE_FG COLOR_CYAN
|
||||||
|
# define COLOR_TABLE_COL_LINE_BG -1
|
||||||
|
# define COLOR_TABLE_COL_TEXT_FG COLOR_GREEN
|
||||||
|
# define COLOR_TABLE_COL_TEXT_BG -1
|
||||||
|
# define COLOR_PAGER_MSG_FG COLOR_YELLOW
|
||||||
|
# define COLOR_PAGER_MSG_BG -1
|
||||||
|
#else
|
||||||
|
# error "Color profile not valid"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
enum color_pairs{
|
||||||
|
COLOR_PAIR_FRAME = 1,
|
||||||
|
COLOR_PAIR_PROMPT,
|
||||||
|
COLOR_PAIR_FIELD,
|
||||||
|
COLOR_PAIR_FIELD_SELECTED,
|
||||||
|
COLOR_PAIR_HELP,
|
||||||
|
COLOR_PAIR_TOOLTIP,
|
||||||
|
COLOR_PAIR_PATTERN,
|
||||||
|
COLOR_PAIR_MESSAGE,
|
||||||
|
COLOR_PAIR_TABLE_HEADER,
|
||||||
|
COLOR_PAIR_TABLE_ID,
|
||||||
|
COLOR_PAIR_TABLE_COL_FILE,
|
||||||
|
COLOR_PAIR_TABLE_COL_FUNCTION,
|
||||||
|
COLOR_PAIR_TABLE_COL_LINE,
|
||||||
|
COLOR_PAIR_TABLE_COL_TEXT,
|
||||||
|
COLOR_PAIR_PAGER_MSG
|
||||||
|
};
|
||||||
|
|
||||||
|
#define easy_init_pair(x) init_pair(COLOR_PAIR_ ## x, COLOR_ ## x ## _FG, COLOR_ ## x ## _BG)
|
||||||
|
|
||||||
|
/* Other options:
|
||||||
|
A_NORMAL : Normal display (no highlight)
|
||||||
|
A_UNDERLINE : Underlining
|
||||||
|
A_REVERSE : Reverse video
|
||||||
|
A_BLINK : Blinking
|
||||||
|
A_BOLD : Extra bright or bold
|
||||||
|
A_STANDOUT : Best highlighting mode of the terminal.
|
||||||
|
NOTE: you can specify more than one by separating the options by a '|' sign.
|
||||||
|
{ A_BLINK | A_BOLD }
|
||||||
|
*/
|
||||||
|
#define ATTRIBUTE_FIELD_SELECTED A_BOLD
|
||||||
|
|
||||||
|
#endif
|
119
src/display.c
119
src/display.c
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "build.h"
|
#include "build.h"
|
||||||
|
#include "colors.h"
|
||||||
|
|
||||||
#ifdef CCS
|
#ifdef CCS
|
||||||
#include "sgs.h" /* ESG_PKG and ESG_REL */
|
#include "sgs.h" /* ESG_PKG and ESG_REL */
|
||||||
@ -144,6 +145,23 @@ dispinit(void)
|
|||||||
{
|
{
|
||||||
/* initialize the curses display package */
|
/* initialize the curses display package */
|
||||||
initscr(); /* initialize the screen */
|
initscr(); /* initialize the screen */
|
||||||
|
start_color();
|
||||||
|
use_default_colors();
|
||||||
|
easy_init_pair(FRAME);
|
||||||
|
easy_init_pair(PROMPT);
|
||||||
|
easy_init_pair(FIELD);
|
||||||
|
easy_init_pair(FIELD_SELECTED);
|
||||||
|
easy_init_pair(HELP);
|
||||||
|
easy_init_pair(TOOLTIP);
|
||||||
|
easy_init_pair(MESSAGE);
|
||||||
|
easy_init_pair(PATTERN);
|
||||||
|
easy_init_pair(TABLE_HEADER);
|
||||||
|
easy_init_pair(TABLE_ID);
|
||||||
|
easy_init_pair(TABLE_COL_LINE);
|
||||||
|
easy_init_pair(TABLE_COL_FILE);
|
||||||
|
easy_init_pair(TABLE_COL_FUNCTION);
|
||||||
|
easy_init_pair(TABLE_COL_TEXT);
|
||||||
|
easy_init_pair(PAGER_MSG);
|
||||||
entercurses();
|
entercurses();
|
||||||
|
|
||||||
/* Calculate section sizes */
|
/* Calculate section sizes */
|
||||||
@ -152,7 +170,7 @@ dispinit(void)
|
|||||||
mode_window_height = LINES - input_window_height - 2 - 1;
|
mode_window_height = LINES - input_window_height - 2 - 1;
|
||||||
first_col_width = 48; // (((COLS - 2)%2 == 0) ? ((COLS-2)/2) : (((COLS-2)/2)+1));
|
first_col_width = 48; // (((COLS - 2)%2 == 0) ? ((COLS-2)/2) : (((COLS-2)/2)+1));
|
||||||
second_col_width = COLS - 2 - 1 - first_col_width; //((COLS - 2) / 2) - 1;
|
second_col_width = COLS - 2 - 1 - first_col_width; //((COLS - 2) / 2) - 1;
|
||||||
mdisprefs = result_window_height - WRESULT_TABLE_BODY_START - 1 - 1;
|
mdisprefs = result_window_height - WRESULT_TABLE_BODY_START - 1 - 1 - 1;
|
||||||
|
|
||||||
if (mdisprefs <= 0) {
|
if (mdisprefs <= 0) {
|
||||||
postfatal("%s: screen too small\n", argv0);
|
postfatal("%s: screen too small\n", argv0);
|
||||||
@ -216,44 +234,51 @@ exitcurses(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void display_help(){
|
static inline void display_help(){
|
||||||
|
// XXX: this could be optimized by only overriding the buffer if theres an actual change
|
||||||
werase(whelp);
|
werase(whelp);
|
||||||
wmove(whelp, 0, 0);
|
wmove(whelp, 0, 0);
|
||||||
|
wattron(whelp, COLOR_PAIR(COLOR_PAIR_HELP));
|
||||||
waddstr(whelp, help());
|
waddstr(whelp, help());
|
||||||
|
wattroff(whelp, COLOR_PAIR(COLOR_PAIR_HELP));
|
||||||
|
|
||||||
|
refresh();
|
||||||
wrefresh(whelp);
|
wrefresh(whelp);
|
||||||
|
|
||||||
do_press_any_key = true;
|
do_press_any_key = true;
|
||||||
window_change = CH_ALL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void display_frame(){
|
static inline void display_frame(const bool border_only){
|
||||||
|
wattron(stdscr, COLOR_PAIR(COLOR_PAIR_FRAME));
|
||||||
|
|
||||||
box(stdscr, 0, 0);
|
box(stdscr, 0, 0);
|
||||||
/* Vertical line */
|
|
||||||
mvaddch(0, first_col_width + 1, ACS_TTEE);
|
|
||||||
for(int i = 0; i < LINES-2; i++){
|
|
||||||
mvaddch(i+1, first_col_width + 1, ACS_VLINE);
|
|
||||||
}
|
|
||||||
mvaddch(LINES-1, first_col_width + 1, ACS_BTEE);
|
|
||||||
/* Horizontal line */
|
|
||||||
wmove(stdscr, input_window_height + 1, 0);
|
|
||||||
addch(ACS_LTEE);
|
|
||||||
for(int i = 0; i < first_col_width; i++){
|
|
||||||
addch(ACS_HLINE);
|
|
||||||
}
|
|
||||||
addch(ACS_RTEE);
|
|
||||||
/* Title*/
|
/* Title*/
|
||||||
const int LEFT_PADDING = 5;
|
const int LEFT_PADDING = 5;
|
||||||
wmove(stdscr, 0, LEFT_PADDING);
|
wmove(stdscr, 0, LEFT_PADDING);
|
||||||
#if CCS
|
#if CCS
|
||||||
if (displayversion == true) {
|
wprintw(stdscr, "cscope %s", ESG_REL);
|
||||||
wprintw(stdscr, "cscope %s", ESG_REL);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
waddstr(stdscr, "cscope");
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
wprintw(stdscr, "Cscope version %d%s", FILEVERSION, FIXVERSION);
|
wprintw(stdscr, "Cscope version %d%s", FILEVERSION, FIXVERSION);
|
||||||
#endif
|
#endif
|
||||||
wmove(stdscr, 0, COLS - (int)sizeof(helpstring) - 3);
|
wmove(stdscr, 0, COLS - (int)sizeof(helpstring) - 3);
|
||||||
waddstr(stdscr, helpstring);
|
waddstr(stdscr, helpstring);
|
||||||
|
/* --- */
|
||||||
|
if(!border_only){
|
||||||
|
/* Vertical line */
|
||||||
|
mvaddch(0, first_col_width + 1, ACS_TTEE);
|
||||||
|
for(int i = 0; i < LINES-2; i++){
|
||||||
|
mvaddch(i+1, first_col_width + 1, ACS_VLINE);
|
||||||
|
}
|
||||||
|
mvaddch(LINES-1, first_col_width + 1, ACS_BTEE);
|
||||||
|
/* Horizontal line */
|
||||||
|
wmove(stdscr, input_window_height + 1, 0);
|
||||||
|
addch(ACS_LTEE);
|
||||||
|
for(int i = 0; i < first_col_width; i++){
|
||||||
|
addch(ACS_HLINE);
|
||||||
|
}
|
||||||
|
addch(ACS_RTEE);
|
||||||
|
}
|
||||||
|
|
||||||
|
wattroff(stdscr, COLOR_PAIR(COLOR_PAIR_FRAME));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void display_mode(){
|
static inline void display_mode(){
|
||||||
@ -261,18 +286,22 @@ static inline void display_mode(){
|
|||||||
|
|
||||||
for(int i = 0; i < FIELDS; ++i){
|
for(int i = 0; i < FIELDS; ++i){
|
||||||
if(i == field){
|
if(i == field){
|
||||||
wattron(wmode, A_REVERSE);
|
wattron(wmode, COLOR_PAIR(COLOR_PAIR_FIELD_SELECTED) | ATTRIBUTE_FIELD_SELECTED);
|
||||||
mvwprintw(wmode, i, 0, "%s %s", fields[i].text1, fields[i].text2);
|
mvwprintw(wmode, i, 0, "%s %s", fields[i].text1, fields[i].text2);
|
||||||
wattroff(wmode, A_REVERSE);
|
wattroff(wmode, COLOR_PAIR(COLOR_PAIR_FIELD_SELECTED) | ATTRIBUTE_FIELD_SELECTED);
|
||||||
}else{
|
}else{
|
||||||
|
wattron(wmode, COLOR_PAIR(COLOR_PAIR_FIELD));
|
||||||
mvwprintw(wmode, i, 0, "%s %s", fields[i].text1, fields[i].text2);
|
mvwprintw(wmode, i, 0, "%s %s", fields[i].text1, fields[i].text2);
|
||||||
|
wattroff(wmode, COLOR_PAIR(COLOR_PAIR_FIELD));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void display_command_field(){
|
static inline void display_command_field(){
|
||||||
werase(winput);
|
werase(winput);
|
||||||
|
wattron(winput, COLOR_PAIR(COLOR_PAIR_PROMPT));
|
||||||
mvwaddstr(winput, 0, 0, prompts[input_mode]);
|
mvwaddstr(winput, 0, 0, prompts[input_mode]);
|
||||||
|
wattroff(winput, COLOR_PAIR(COLOR_PAIR_PROMPT));
|
||||||
waddstr(winput, rl_line_buffer);
|
waddstr(winput, rl_line_buffer);
|
||||||
}
|
}
|
||||||
static inline void display_results(){
|
static inline void display_results(){
|
||||||
@ -293,7 +322,9 @@ static inline void display_results(){
|
|||||||
if (totallines == 0) { // Its a real message
|
if (totallines == 0) { // Its a real message
|
||||||
wmove(wresult, MSGLINE, 0);
|
wmove(wresult, MSGLINE, 0);
|
||||||
wclrtoeol(wresult);
|
wclrtoeol(wresult);
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_MESSAGE));
|
||||||
waddstr(wresult, lastmsg);
|
waddstr(wresult, lastmsg);
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_MESSAGE));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (input_mode == INPUT_CHANGE) { // Its a pattern
|
if (input_mode == INPUT_CHANGE) { // Its a pattern
|
||||||
@ -302,9 +333,12 @@ static inline void display_results(){
|
|||||||
snprintf(lastmsg, MSGLEN, "%c%s: %s", toupper((unsigned char)fields[field].text2[0]),
|
snprintf(lastmsg, MSGLEN, "%c%s: %s", toupper((unsigned char)fields[field].text2[0]),
|
||||||
fields[field].text2 + 1, input_line);
|
fields[field].text2 + 1, input_line);
|
||||||
}
|
}
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_PATTERN));
|
||||||
waddstr(wresult, lastmsg);
|
waddstr(wresult, lastmsg);
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_PATTERN));
|
||||||
|
|
||||||
/* --- Display the column headings --- */
|
/* --- Display the column headings --- */
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_HEADER));
|
||||||
wmove(wresult, 2, 2);
|
wmove(wresult, 2, 2);
|
||||||
if (ogs == true && field != FILENAME) {
|
if (ogs == true && field != FILENAME) {
|
||||||
wprintw(wresult, "%-*s ", subsystemlen, "Subsystem");
|
wprintw(wresult, "%-*s ", subsystemlen, "Subsystem");
|
||||||
@ -319,6 +353,7 @@ static inline void display_results(){
|
|||||||
if (field != FILENAME) {
|
if (field != FILENAME) {
|
||||||
waddstr(wresult, "Line");
|
waddstr(wresult, "Line");
|
||||||
}
|
}
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_HEADER));
|
||||||
|
|
||||||
/* --- Display table entries --- */
|
/* --- Display table entries --- */
|
||||||
wmove(wresult, WRESULT_TABLE_BODY_START, 0);
|
wmove(wresult, WRESULT_TABLE_BODY_START, 0);
|
||||||
@ -367,7 +402,9 @@ static inline void display_results(){
|
|||||||
++nextline;
|
++nextline;
|
||||||
displine[disprefs] = screenline;
|
displine[disprefs] = screenline;
|
||||||
|
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_ID));
|
||||||
wprintw(wresult, "%c", dispchars[disprefs]);
|
wprintw(wresult, "%c", dispchars[disprefs]);
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_ID));
|
||||||
|
|
||||||
/* display any change mark */
|
/* display any change mark */
|
||||||
if (input_mode == INPUT_CHANGE && change[topref + disprefs]) {
|
if (input_mode == INPUT_CHANGE && change[topref + disprefs]) {
|
||||||
@ -377,6 +414,7 @@ static inline void display_results(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* display the file name */
|
/* display the file name */
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_FILE));
|
||||||
if (field == FILENAME) {
|
if (field == FILENAME) {
|
||||||
wprintw(wresult, "%-*s ", filelen, file);
|
wprintw(wresult, "%-*s ", filelen, file);
|
||||||
} else {
|
} else {
|
||||||
@ -392,24 +430,30 @@ static inline void display_results(){
|
|||||||
pathcomponents(file, dispcomponents));
|
pathcomponents(file, dispcomponents));
|
||||||
}
|
}
|
||||||
} /* else(field == FILENAME) */
|
} /* else(field == FILENAME) */
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_FILE));
|
||||||
|
|
||||||
/* display the function name */
|
/* display the function name */
|
||||||
if (field == SYMBOL || field == CALLEDBY || field == CALLING) {
|
if(field == SYMBOL || field == CALLEDBY || field == CALLING){
|
||||||
wprintw(wresult, "%-*.*s ", fcnlen, fcnlen, function);
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_FUNCTION));
|
||||||
|
wprintw(wresult, "%-*.*s ", fcnlen, fcnlen, function);
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_FUNCTION));
|
||||||
}
|
}
|
||||||
if (field == FILENAME) {
|
if(field == FILENAME){
|
||||||
waddch(wresult, '\n'); /* go to next line */
|
waddch(wresult, '\n'); /* go to next line */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* display the line number */
|
/* display the line number */
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_LINE));
|
||||||
wprintw(wresult, "%*s ", numlen, linenum);
|
wprintw(wresult, "%*s ", numlen, linenum);
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_LINE));
|
||||||
/* there may be tabs in egrep output */
|
/* there may be tabs in egrep output */
|
||||||
while ((s = strchr(tempstring, '\t')) != NULL) {
|
while((s = strchr(tempstring, '\t')) != NULL){
|
||||||
*s = ' ';
|
*s = ' ';
|
||||||
}
|
}
|
||||||
|
|
||||||
/* display the source line */
|
/* display the source line */
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_TEXT));
|
||||||
s = tempstring;
|
s = tempstring;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
/* if the source line does not fit */
|
/* if the source line does not fit */
|
||||||
@ -467,6 +511,7 @@ static inline void display_results(){
|
|||||||
wmove(wresult, screenline, second_col_width - srctxtw);
|
wmove(wresult, screenline, second_col_width - srctxtw);
|
||||||
} /* for(ever) */
|
} /* for(ever) */
|
||||||
} /* for(reference output lines) */
|
} /* for(reference output lines) */
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_TABLE_COL_TEXT));
|
||||||
|
|
||||||
endrefs:
|
endrefs:
|
||||||
/* position the screen cursor for the message */
|
/* position the screen cursor for the message */
|
||||||
@ -477,6 +522,8 @@ endrefs:
|
|||||||
else {
|
else {
|
||||||
wmove(wresult, i, 0);
|
wmove(wresult, i, 0);
|
||||||
}
|
}
|
||||||
|
/* --- display pager message --- */
|
||||||
|
wattron(wresult, COLOR_PAIR(COLOR_PAIR_PAGER_MSG));
|
||||||
/* check for more references */
|
/* check for more references */
|
||||||
i = totallines - nextline + 1;
|
i = totallines - nextline + 1;
|
||||||
bottomline = nextline;
|
bottomline = nextline;
|
||||||
@ -487,6 +534,7 @@ endrefs:
|
|||||||
else if (current_page > 0 && nextline > totallines) {
|
else if (current_page > 0 && nextline > totallines) {
|
||||||
waddstr(wresult, "* Press the space bar to display the first lines again *");
|
waddstr(wresult, "* Press the space bar to display the first lines again *");
|
||||||
}
|
}
|
||||||
|
wattroff(wresult, COLOR_PAIR(COLOR_PAIR_PAGER_MSG));
|
||||||
}
|
}
|
||||||
|
|
||||||
void display_cursor(void){
|
void display_cursor(void){
|
||||||
@ -710,14 +758,17 @@ display(void)
|
|||||||
|
|
||||||
if(window_change){
|
if(window_change){
|
||||||
if(window_change == CH_HELP){
|
if(window_change == CH_HELP){
|
||||||
|
display_frame(true);
|
||||||
display_help();
|
display_help();
|
||||||
/* Do not display over the help msg and */
|
/* Do not display over the help msg and
|
||||||
/* rely on display_help() setting CH_ALL */
|
* rely on setting CH_ALL for the next display
|
||||||
|
*/
|
||||||
|
window_change = CH_ALL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/**/
|
/**/
|
||||||
if(window_change == CH_ALL){
|
if(window_change == CH_ALL){
|
||||||
display_frame();
|
display_frame(false);
|
||||||
}
|
}
|
||||||
if(window_change & CH_INPUT){
|
if(window_change & CH_INPUT){
|
||||||
display_command_field();
|
display_command_field();
|
||||||
|
@ -93,7 +93,7 @@ editall(void)
|
|||||||
|
|
||||||
/* call the editor */
|
/* call the editor */
|
||||||
void
|
void
|
||||||
edit(char *file, char *linenum)
|
edit(char *file, const char *const linenum)
|
||||||
{
|
{
|
||||||
const char *const editor_basename = basename(editor);
|
const char *const editor_basename = basename(editor);
|
||||||
char msg[MSGLEN + 1]; /* message */
|
char msg[MSGLEN + 1]; /* message */
|
||||||
@ -135,7 +135,7 @@ edit(char *file, char *linenum)
|
|||||||
/* if requested, prepend a path to a relative file name */
|
/* if requested, prepend a path to a relative file name */
|
||||||
|
|
||||||
char *
|
char *
|
||||||
filepath(const char *file)
|
filepath(char *file)
|
||||||
{
|
{
|
||||||
static char path[PATHLEN + 1];
|
static char path[PATHLEN + 1];
|
||||||
|
|
||||||
|
24
src/global.h
24
src/global.h
@ -124,9 +124,6 @@ extern char *argv0; /* command name */
|
|||||||
extern bool compress; /* compress the characters in the crossref */
|
extern bool compress; /* compress the characters in the crossref */
|
||||||
extern bool dbtruncated; /* database symbols truncated to 8 chars */
|
extern bool dbtruncated; /* database symbols truncated to 8 chars */
|
||||||
extern int dispcomponents; /* file path components to display */
|
extern int dispcomponents; /* file path components to display */
|
||||||
#if CCS
|
|
||||||
extern bool displayversion; /* display the C Compilation System version */
|
|
||||||
#endif
|
|
||||||
extern bool editallprompt; /* prompt between editing files */
|
extern bool editallprompt; /* prompt between editing files */
|
||||||
extern unsigned int fileargc; /* file argument count */
|
extern unsigned int fileargc; /* file argument count */
|
||||||
extern char **fileargv; /* file argument values */
|
extern char **fileargv; /* file argument values */
|
||||||
@ -142,12 +139,13 @@ extern char *namefile; /* file of file names */
|
|||||||
extern bool ogs; /* display OGS book and subsystem names */
|
extern bool ogs; /* display OGS book and subsystem names */
|
||||||
extern char *prependpath; /* prepend path to file names */
|
extern char *prependpath; /* prepend path to file names */
|
||||||
extern FILE *refsfound; /* references found file */
|
extern FILE *refsfound; /* references found file */
|
||||||
extern char temp1[]; /* temporary file name */
|
|
||||||
extern char temp2[]; /* temporary file name */
|
|
||||||
extern long totalterms; /* total inverted index terms */
|
extern long totalterms; /* total inverted index terms */
|
||||||
extern bool trun_syms; /* truncate symbols to 8 characters */
|
extern bool trun_syms; /* truncate symbols to 8 characters */
|
||||||
extern char tempstring[TEMPSTRING_LEN + 1]; /* global dummy string buffer */
|
extern char tempstring[TEMPSTRING_LEN + 1]; /* global dummy string buffer */
|
||||||
|
|
||||||
extern char *tmpdir; /* temporary directory */
|
extern char *tmpdir; /* temporary directory */
|
||||||
|
extern char temp1[]; /* temporary file name */
|
||||||
|
extern char temp2[]; /* temporary file name */
|
||||||
|
|
||||||
/* command.c global data */
|
/* command.c global data */
|
||||||
extern bool caseless; /* ignore letter case when searching */
|
extern bool caseless; /* ignore letter case when searching */
|
||||||
@ -167,10 +165,10 @@ extern char currentdir[]; /* current directory */
|
|||||||
extern char **incdirs; /* #include directories */
|
extern char **incdirs; /* #include directories */
|
||||||
extern char **srcdirs; /* source directories */
|
extern char **srcdirs; /* source directories */
|
||||||
extern char **srcfiles; /* source files */
|
extern char **srcfiles; /* source files */
|
||||||
extern unsigned long nincdirs; /* number of #include directories */
|
extern size_t nincdirs; /* number of #include directories */
|
||||||
extern unsigned long nsrcdirs; /* number of source directories */
|
extern size_t nsrcdirs; /* number of source directories */
|
||||||
extern unsigned long nsrcfiles; /* number of source files */
|
extern size_t nsrcfiles; /* number of source files */
|
||||||
extern unsigned long msrcfiles; /* maximum number of source files */
|
extern size_t msrcfiles; /* maximum number of source files */
|
||||||
|
|
||||||
/* display.c global data */
|
/* display.c global data */
|
||||||
extern int subsystemlen; /* OGS subsystem name display field length */
|
extern int subsystemlen; /* OGS subsystem name display field length */
|
||||||
@ -215,7 +213,7 @@ extern bool unixpcmouse; /* UNIX PC mouse interface */
|
|||||||
|
|
||||||
/* cscope functions called from more than one function or between files */
|
/* cscope functions called from more than one function or between files */
|
||||||
|
|
||||||
char *filepath(const char *file);
|
char *filepath(char *file);
|
||||||
char *findsymbol(const char *pattern);
|
char *findsymbol(const char *pattern);
|
||||||
char *finddef(const char *pattern);
|
char *finddef(const char *pattern);
|
||||||
char *findcalledby(const char *pattern);
|
char *findcalledby(const char *pattern);
|
||||||
@ -261,8 +259,8 @@ void addcmd(int f, char *s);
|
|||||||
void addsrcfile(char *path);
|
void addsrcfile(char *path);
|
||||||
void askforchar(void);
|
void askforchar(void);
|
||||||
void askforreturn(void);
|
void askforreturn(void);
|
||||||
void cannotwrite(char *file);
|
void cannotwrite(const char *const file);
|
||||||
void cannotopen(char *file);
|
void cannotopen(const char *const file);
|
||||||
void clearmsg(void);
|
void clearmsg(void);
|
||||||
void clearmsg2(void);
|
void clearmsg2(void);
|
||||||
void countrefs(void);
|
void countrefs(void);
|
||||||
@ -270,7 +268,7 @@ void crossref(char *srcfile);
|
|||||||
void dispinit(void);
|
void dispinit(void);
|
||||||
void display(void);
|
void display(void);
|
||||||
void drawscrollbar(int top, int bot);
|
void drawscrollbar(int top, int bot);
|
||||||
void edit(char *file, char *linenum);
|
void edit(char *file, const char *const linenum);
|
||||||
void editall(void);
|
void editall(void);
|
||||||
void editref(int);
|
void editref(int);
|
||||||
void entercurses(void);
|
void entercurses(void);
|
||||||
|
@ -72,9 +72,6 @@ char *argv0; /* command name */
|
|||||||
bool compress = true; /* compress the characters in the crossref */
|
bool compress = true; /* compress the characters in the crossref */
|
||||||
bool dbtruncated; /* database symbols are truncated to 8 chars */
|
bool dbtruncated; /* database symbols are truncated to 8 chars */
|
||||||
int dispcomponents = 1; /* file path components to display */
|
int dispcomponents = 1; /* file path components to display */
|
||||||
#if CCS
|
|
||||||
bool displayversion; /* display the C Compilation System version */
|
|
||||||
#endif
|
|
||||||
bool editallprompt = true; /* prompt between editing files */
|
bool editallprompt = true; /* prompt between editing files */
|
||||||
unsigned int fileargc; /* file argument count */
|
unsigned int fileargc; /* file argument count */
|
||||||
char **fileargv; /* file argument values */
|
char **fileargv; /* file argument values */
|
||||||
@ -150,14 +147,14 @@ siginit(void){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cannotopen(char *file)
|
cannotopen(const char *const file)
|
||||||
{
|
{
|
||||||
posterr("Cannot open file %s", file);
|
posterr("Cannot open file %s", file);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME MTE - should use postfatal here */
|
/* FIXME MTE - should use postfatal here */
|
||||||
void
|
void
|
||||||
cannotwrite(char *file)
|
cannotwrite(const char *const file)
|
||||||
{
|
{
|
||||||
char msg[MSGLEN + 1];
|
char msg[MSGLEN + 1];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user