From e396c88fd1b863776d3fe5b09b0d6bb42e0c1619 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sat, 21 Nov 2009 11:19:08 -0500 Subject: [PATCH] a less-mangled version of the simple_attr demo --- basics/simple_attr.c | 86 ++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 42 deletions(-) diff --git a/basics/simple_attr.c b/basics/simple_attr.c index 5b4b9ed..2a4ec2d 100644 --- a/basics/simple_attr.c +++ b/basics/simple_attr.c @@ -4,51 +4,53 @@ int main(int argc, char *argv[]) { - int ch, prev, row, col; - prev = EOF; - FILE *fp; - int y, x; + int ch, prev, row, col; + prev = EOF; + FILE *fp; + int y, x; - if(argc != 2) - { - printf("Usage: %s \n", argv[0]); - exit(1); - } - fp = fopen(argv[1], "r"); - if(fp == NULL) - { - perror("Cannot open input file"); - exit(1); - } - initscr(); /* Start curses mode */ - getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */ - while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */ - { - getyx(stdscr, y, x); /* get the current curser position */ - if(y == (row - 1)) /* are we are at the end of the screen */ + if(argc != 2) { - printw("<-Press Any Key->"); /* tell the user to press a key */ - getch(); - clear(); /* clear the screen */ - move(0, 0); /* start at the beginning of the screen */ + printf("Usage: %s \n", argv[0]); + exit(1); } - if(prev == '/' && ch == '*') /* If it is / and * then only - * switch bold on */ + fp = fopen(argv[1], "r"); + if(fp == NULL) { - attron(A_BOLD); /* cut bold on */ - getyx(stdscr, y, x); /* get the current curser position */ - move(y, x - 1); /* back up one space */ - printw("%c%c", '/', ch); /* The actual printing is done here */ + perror("Cannot open input file"); + exit(1); } - else - printw("%c", ch); - refresh(); - if(prev == '*' && ch == '/') - attroff(A_BOLD); /* Switch it off once we got * - * and then / */ - prev = ch; - } - endwin(); /* End curses mode */ - fclose(fp); - return 0; + initscr(); /* Start curses mode */ + getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */ + while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */ + { + getyx(stdscr, y, x); /* get the current curser position */ + if(y == (row - 1)) /* are we are at the end of the screen */ + { + printw("<-Press Any Key->"); /* tell the user to press a key */ + getch(); + clear(); /* clear the screen */ + move(0, 0); /* start at the beginning of the screen */ + } + if(prev == '/' && ch == '*') /* If it is / and * then only + * switch bold on */ + { + attron(A_BOLD); /* cut bold on */ + getyx(stdscr, y, x); /* get the current curser position */ + move(y, x - 1); /* back up one space */ + printw("%c%c", '/', ch); /* The actual printing is done here */ + } else { + printw("%c", ch); + } + refresh(); + + if(prev == '*' && ch == '/') { + attroff(A_BOLD); /* Switch it off once we got */ + } + /* and then / */ + prev = ch; + } + endwin(); /* End curses mode */ + fclose(fp); + return 0; }