/* $Id$ */ /* * Copyright (c) 2005 Dimitri Sokolyuk * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include #include #include #if defined(__linux__) #define strlcpy(d,s,l) (strncpy(d,s,l), (d)[(l) - 1] = '\0') #define strlcat(d,s,l) strncat(d,s,(l) - strlen(d) - 1) #endif char allowed[] = "0123456789:.-"; char *seg[][3] = { ['0'] = { " _ ", "| |", "|_|" }, ['1'] = { " ", " |", " |" }, ['2'] = { " _ ", " _|", "|_ " }, ['3'] = { " _ ", " _|", " _|" }, ['4'] = { " ", "|_|", " |" }, ['5'] = { " _ ", "|_ ", " _|" }, ['6'] = { " _ ", "|_ ", "|_|" }, ['7'] = { " _ ", " |", " |" }, ['8'] = { " _ ", "|_|", "|_|" }, ['9'] = { " _ ", "|_|", " _|" }, [':'] = { " ", " * ", " * " }, ['.'] = { " ", " ", " * " }, ['-'] = { " ", " _ ", " " }, }; void sevenseg(char t[3][80], size_t sz, char *s) { char *p; int i; for (i = 0; i < 3; i++) { *t[i] = '\0'; for (p = s; *p; p++) if (strchr(allowed, *p) != NULL) strlcat(t[i], seg[(int)*p][i], sz); } }