/* Copyright (c) 2002,2003,2004,2009 James M. Kretchmar * * This file is part of Owl. * * Owl is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Owl is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Owl. If not, see . * * --------------------------------------------------------------- * * As of Owl version 2.1.12 there are patches contributed by * developers of the branched BarnOwl project, Copyright (c) * 2006-2009 The BarnOwl Developers. All rights reserved. */ #include "owl.h" #include #include static const char fileIdent[] = "$Id$"; owl_global g; void screeninit() { char buff[1024]; sprintf(buff, "TERMINFO=%s", TERMINFO); putenv(buff); initscr(); start_color(); /* cbreak(); */ raw(); noecho(); intrflush(stdscr,FALSE); keypad(stdscr,TRUE); nodelay(stdscr,1); clear(); refresh(); meta(stdscr, TRUE); } void test1() { int j; owl_editwin e; screeninit(); owl_editwin_init(&e, stdscr, LINES, COLS, OWL_EDITWIN_STYLE_MULTILINE, NULL); /* owl_editwin_set_locktext(&e, "Here is some locktext:\n");*/ doupdate(); while (1) { usleep(50); j=getch(); if (j==ERR) continue; if (j==3) break; if (j==27) { j=getch(); if (j==ERR) continue; owl_editwin_process_char(&e, j); doupdate(); } else { owl_editwin_process_char(&e, j); doupdate(); } } endwin(); printf("Had:\n%s", owl_editwin_get_text(&e)); } void test2(char *in) { owl_fmtext t; screeninit(); owl_fmtext_init_null(&t); owl_fmtext_append_ztext(&t, in); owl_fmtext_curs_waddstr(&t, stdscr); wrefresh(stdscr); sleep(5000); endwin(); } void test3() { ZNotice_t *n; printf("%i\n", sizeof(n->z_uid.zuid_addr)); /* gethostbyaddr((char *) &(n->z_uid.zuid_addr), sizeof(n->z_uid.zuid_addr), AF_INET); */ } void colorinfo() { char buff[1024]; screeninit(); sprintf(buff, "Have %i COLOR_PAIRS\n", COLOR_PAIRS); addstr(buff); refresh(); sleep(10); endwin(); } void test4() { int j; char buff[1024]; screeninit(); while (1) { usleep(100); j=getch(); if (j==ERR) continue; if (j==3) break; sprintf(buff, "%o\n", j); addstr(buff); } endwin(); } void test_keypress() { int j, rev; char buff[1024], buff2[64]; screeninit(); while (1) { usleep(100); j=wgetch(stdscr); if (j==ERR) continue; if (j==3) break; if (0 == owl_keypress_tostring(j, 0, buff2, 1000)) { rev = owl_keypress_fromstring(buff2); sprintf(buff, "%s : 0x%x 0%o %d %d %s\n", buff2, j, j, j, rev, (j==rev?"matches":"*** WARNING: Does Not Reverse")); } else { sprintf(buff, "UNKNOWN : 0x%x 0%o %d\n", j, j, j); } addstr(buff); } endwin(); } int main(int argc, char **argv, char **env) { int numfailures=0; if (argc==2 && 0==strcmp(argv[1],"reg")) { numfailures += owl_util_regtest(); numfailures += owl_dict_regtest(); numfailures += owl_variable_regtest(); if (numfailures) { fprintf(stderr, "*** WARNING: %d failures total\n", numfailures); } return(numfailures); } else if (argc==2 && 0==strcmp(argv[1],"test1")) { test1(); } else if (argc==2 && 0==strcmp(argv[1],"colorinfo")) { colorinfo(); } else if (argc==2 && 0==strcmp(argv[1],"test4")) { test4(); } else if (argc==2 && 0==strcmp(argv[1],"keypress")) { test_keypress(); } else { fprintf(stderr, "No test specified. Current options are: reg test1\n"); } return(0); }