diff --git a/src/boxes.c b/src/boxes.c index 8adba7b..595f946 100644 --- a/src/boxes.c +++ b/src/boxes.c @@ -2,13 +2,11 @@ * File: boxes.c * Date created: March 18, 1999 (Thursday, 15:09h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: boxes.c,v 1.39 2006/08/28 15:53:46 tsjensen Exp $ * Language: ANSI C - * Platforms: sunos5/sparc, for now - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Filter to draw boxes around input text (and remove it). * - * Remarks: o This program is free software; you can redistribute it + * License: o This program 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 2 of the License, or (at your option) any later @@ -41,191 +39,6 @@ * And again, changing this would pretty much mean a total * rewrite. * - * Revision History: - * - * $Log: boxes.c,v $ - * Revision 1.39 2006/08/28 15:53:46 tsjensen - * Added support for --help and -? options, which do the same as -h - * (This feature was requested by Raphael Wimmer). - * - * Revision 1.38 2006/07/22 19:40:40 tsjensen - * Applied patch by Christoph Dreyer to support unexpansion of leading tabs - * Added ability to retain leading tabs in their original positions - * Mending a box with -m now implies -k false - * - * Revision 1.37 2006/07/12 05:49:50 tsjensen - * Updated email and web addresses in comment header etc. - * Applied patch by Elmar Loos that adds -m option for mending a box - * Changed a few more things to make the box mending patch work in - * connection with all the other boxes options - * - * Revision 1.36 2000-04-01 10:27:17-08 tsjensen - * Added -c option (simple comment definition) - * - * Revision 1.35 2000/03/21 14:26:31 tsjensen - * Minor change to make boxes compile on DEC/OSF, too (S_ISDIR) - * - * Revision 1.34 2000/03/17 23:44:26 tsjensen - * Port to Win32 platform based on patches by Ron Aaron - * Changes only affect Win32 version. Win32 behavior differs from the UNIX - * platforms in the way the config file is searched and the config file - * name (boxes.cfg). - * - * Revision 1.33 1999/09/10 19:21:05 tsjensen - * Eliminated use of PATH_MAX in order to ease porting - * Restructured infile/outfile code to eliminate need for access() function - * and improve readability - * Added file type check before reading config file. boxes used to generate - * a weird error message if the config file is a directory - * - * Revision 1.32 1999/08/22 11:34:46 tsjensen - * Bugfix: no-input-check must take place before indentation computation - * - * Revision 1.31 1999/08/21 23:33:03 tsjensen - * Added usage of system-wide config file (GLOBALCONF from boxes.h) - * Moved config file selection code into it own function (get_config_file()) - * - * Revision 1.30 1999/08/21 15:55:42 tsjensen - * Updated usage information - * Updated quickinfo (-l -d) with killblank default value - * Made indentation computation into a function of its own (get_indent()) - * Bugfix: REVERSION code may change indentation -> recompute if necessary - * - * Revision 1.29 1999/08/16 18:29:39 tsjensen - * Added output of total number of designs for -l - * - * Revision 1.28 1999/07/23 16:15:48 tsjensen - * Added quickinfo mode to list_styles(). Called with -l and -d together. - * - * Revision 1.27 1999/07/21 16:53:17 tsjensen - * Bugfix: Empty box sides were still counted when -s was specified (so - * -s x5 would get you only three lines). - * - * Revision 1.26 1999/07/20 18:45:29 tsjensen - * Added GNU GPL disclaimer - * Added -k option (kill leading/trailing blank lines on removal yes/no) - * Bugfix: REPLACE and indentation conflict. Now applying regexp substitutions - * only after indentation was already handled. - * - * Revision 1.25 1999/07/12 18:16:36 tsjensen - * Added include "config.h" to top of file - * - * Revision 1.24 1999/06/30 12:37:25 tsjensen - * Added [lcr] "shorthand" to -a option - * - * Revision 1.23 1999/06/30 12:16:38 tsjensen - * Removed entire select_design stuff, because the parser now returns much - * smaller data structures. The first design pointed to by designs is always - * the one we need (except for ops on *all* designs). - * The first design in config file is now default design (no DEF_DESIGN anymore). - * - * Revision 1.22 1999/06/28 12:19:29 tsjensen - * Moved parser init and cleanup from main() to parser.y - * Some further cleanup in main() - * - * Revision 1.21 1999/06/25 18:46:39 tsjensen - * Bugfix: Mixed up SW and NE in padding calculation (tricky, that one) - * Added indent mode command line option for grammar overrides - * Moved empty_side() to shape.c after small change in signature - * Added text-in-block justification (j) to alignment option (-a) - * - * Revision 1.20 1999/06/23 19:17:27 tsjensen - * Removed snprintf() and vsnprintf() prototypes (why were they in anyway?) - * along with stdarg.h include - * Exported input global data and empty_side() function - * Declared non-exported functions static - * Moved horiz_precalc(), vert_precalc(), horiz_assemble(), vert_assemble(), - * horiz_generate(), vert_generate(), generate_box() and output_box() to a - * new file generate.c - * Moved best_match(), hmm(), detect_horiz(), detect_design(), remove_box() - * and output_input() to a new file remove.c - * - * Revision 1.19 1999/06/23 12:31:26 tsjensen - * Improvements on design detection (could still be better though) - * Moved iscorner(), on_side(), isempty(), shapecmp(), both_on_side(), - * shape_distance(), empty_side(), highest(), and widest() as well as - * some data structures and macros related to shapes to new file shape.c - * - * Revision 1.18 1999/06/22 12:03:33 tsjensen - * DEBUGging is now activated in boxes.h - * Moved MAX_TABSTOP, LINE_MAX macros and struct opt_t to boxes.h - * Moved BMAX, strrstr(), btrim(), yyerror(), expand_tabs_into(), - * regerror(), empty_line() to a new file tools.c, added #include tools.h - * Some cleanup in main() - * Declared style_sort() helper function static - * Renamed strrstr() to my_strnrstr() (now defined in tools.c) - * Default design is now defined by DEF_DESIGN macro - * Changed select_design(), because default design value now set in process_commandline() - * Bugfix: segfaulted if shape was bigger than input when detecting design - * Bugfix: Padding was not removed when box was removed - * Bugfix: Forgot null byte when removing west box side - * - * Revision 1.17 1999/06/20 14:20:29 tsjensen - * Added code for padding handling (-p) - * Added BMAX macro (returns maximum of two values) - * - * Revision 1.16 1999/06/17 19:07:06 tsjensen - * Moved line_t to boxes.h - * empty_line() now also considers \r and \n whitespace - * Added empty_side() function - * Added handling of empty box sides in output_box() - * - * Revision 1.15 1999/06/15 12:07:39 tsjensen - * Removed a stray debug message - * Move apply_substitutions() regexp handling function up in file - * Use apply_substitutions() in read_input() routine also - * Moved "extern int yyparse()" prototype to start of file - * - * Revision 1.14 1999/06/14 12:08:49 tsjensen - * Bugfix: best_match() box side detection used numw instead of nume - * Added apply_substitutions() routine for central regexp handling - * Added regexp reversion code for box removal - * Unified use of current_re[pv]rule - * Added a few comments and debugging code - * - * Revision 1.13 1999/06/13 15:28:31 tsjensen - * Some error message clean-up - * Regular expression substitutions on input text only if *drawing* a box, - * not if the box is to be removed (requires other substitutions, todo). - * Added code for box design auto-detection when removing a box. - * - * Revision 1.12 1999/06/04 18:13:26 tsjensen - * Don't adjust indentation after removing a box unless something was - * removed on the west side - * East Padding made dynamic, i.e. dependant on the east side size - * - * Revision 1.11 1999/06/03 19:24:14 tsjensen - * A few fixes related to box removal (as expected) - * - * Revision 1.10 1999/06/03 18:54:05 tsjensen - * Lots of fixes - * Added remove box functionality (-r), which remains to be tested - * - * Revision 1.9 1999/04/09 13:33:24 tsjensen - * Removed code related to OFFSET blocks (obsolete) - * - * Revision 1.8 1999/04/04 16:09:01 tsjensen - * Added code for specification of indentation handling of input - * Added regular expression substitutions - * Some minor fixes - * - * Revision 1.7 1999/04/02 18:42:44 tsjensen - * Added infile/outfile parameter code (pasted from tal, more or less) - * Added code to remove trailing spaces from output lines - * - * Revision 1.6 1999/04/01 17:26:18 tsjensen - * Some bug fixes - * Added size option (-s) - * Added Alignment Option (-a) - * It seems actually usable for drawing boxes :-) - * - * Revision 1.4 1999/03/30 13:30:19 tsjensen - * Added minimum width/height for a design. Fixed screwed tiny boxes. - * Bugfix: Did not handle zero input. - * - * Revision 1.1 1999/03/18 15:09:17 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/boxes.h.in b/src/boxes.h.in index ffea461..94aa5d8 100644 --- a/src/boxes.h.in +++ b/src/boxes.h.in @@ -2,12 +2,11 @@ * File: boxes.h * Date created: March 18, 1999 (Thursday, 15:09h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: boxes.h.in,v 1.22 2006/07/22 19:15:52 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Project-wide globals and data structures * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -20,93 +19,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: boxes.h.in,v $ - * Revision 1.22 2006/07/22 19:15:52 tsjensen - * Fix: Renamed yylineno to tjlineno to enable compilation on certain - * flexes (reported by Andreas Heiduk) - * Added tabexp to opt_t - * Added tabpos and tabpos_len to line_t for advanced tab handling - * - * Revision 1.21 2006/07/12 05:44:12 tsjensen - * Updated email and web addresses in comment header - * Added new member 'mend' to opt_t (for option -m, mend box) - * - * Revision 1.20 2000-04-01 10:28:18-08 tsjensen - * Added cld member to command line option struct (-c option) - * - * Revision 1.19 2000/03/17 23:43:13 tsjensen - * Added vim autocommand to set syntax highlighting to C - * - * Revision 1.18 1999/08/21 23:37:23 tsjensen - * Renamed file from boxes.h to boxes.h.in - * VERSION and GLOBALCONF values are now put in by top level Makefile - * - * Revision 1.17 1999/08/14 19:31:23 tsjensen - * Incremented beta version number to 5 - * Added maxshapeheight member to design_t struct - * - * Revision 1.16 1999/07/20 18:48:46 tsjensen - * Added GNU GPL disclaimer - * Updated beta version number :-) - * Added killblank member to global options - * - * Revision 1.15 1999/06/30 12:19:12 tsjensen - * Removed DEF_DESIGN macro, because it now defaults to first design - * Removed some porting code, hoping for autoconf future - * Added PARSER_DEBUG and LEXER_DEBUG macros - * - * Revision 1.14 1999/06/25 18:51:04 tsjensen - * Removed empty_side() prototype (now in shape.h) - * Added indentmode and justify members to command line options struct - * - * Revision 1.13 1999/06/23 19:21:15 tsjensen - * Now exporting anz_designs, input, and empty_side() - * Added #include regexp.h back - * - * Revision 1.12 1999/06/23 12:33:49 tsjensen - * Moved some data structures and macros related to shapes to shape.h - * Added #ifdef DEBUG around __TJ() macro for convenience - * - * Revision 1.11 1999/06/22 12:01:24 tsjensen - * Added DEF_DESIGN (default design name) - * Added opt_t and opt global variable from boxes.c - * Moved BFREE macro and yyerror() and empty_line() prototypes to tools.h - * Added LINE_MAX and MAX_TABSTOP macros from boxes.c - * Added #define DEBUG and REGEXP_DEBUG. This will centrally activate - * debugging. - * - * Revision 1.10 1999/06/20 14:19:31 tsjensen - * Added padding member to design struct - * - * Revision 1.9 1999/06/17 19:08:50 tsjensen - * Removed #pragma ident "string" - * Changed VERSION to 1.0 beta - * Added line_t and empty_line() prototype - * - * Revision 1.8 1999/06/14 12:11:54 tsjensen - * Added struct members for regexp reversion code - * Renamed current_reprule to current_rule, now used for both directions - * - * Revision 1.6 1999/04/09 13:32:55 tsjensen - * Removed code related to OFFSET blocks (obsolete) - * - * Revision 1.5 1999/04/04 16:10:51 tsjensen - * Added some flags to design structure - * Move default settings here from boxes.c - * - * Revision 1.4 1999/03/31 17:34:43 tsjensen - * ... still programming ... - * Added minwidth and minheight to design structure - * - * Revision 1.3 1999/03/30 09:36:58 tsjensen - * ... still programming ... - * It drew a correct box for the first time! - * - * Revision 1.1 1999/03/18 15:09:34 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/generate.c b/src/generate.c index cd7a5f0..318819d 100644 --- a/src/generate.c +++ b/src/generate.c @@ -3,12 +3,11 @@ * Project Main: boxes.c * Date created: June 23, 1999 (Wednesday, 20:10h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: generate.c,v 1.11 2006/07/22 19:21:13 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Box generation, i.e. the drawing of boxes * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,51 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: generate.c,v $ - * Revision 1.11 2006/07/22 19:21:13 tsjensen - * Applied patch by Christoph Dreyer to support unexpansion of leading tabs - * Added ability to retain existing tabs - * - * Revision 1.10 2006/07/12 05:42:28 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.9 1999-08-31 08:37:01-07 tsjensen - * Applied Joe Zbiciak's patches to remove all snprintf()s and variants - * Replaced snprintf() calls with calls to concat_strings() in the process - * - * Revision 1.8 1999/08/22 11:36:45 tsjensen - * Removed const from 2nd parameter of justify_line() function - * - * Revision 1.7 1999/08/21 16:04:24 tsjensen - * Bugfix: justify_line() still didn't work right. It should now. (This time I - * discovered that indentmode=="text" was confusing it. Arghh!) - * - * Revision 1.6 1999/08/18 15:37:09 tsjensen - * Bugfix: justify_line() still didn't work right. It should now. (Man, I got - * a strong sense of déja vu! Weird ...) - * - * Revision 1.5 1999/08/16 18:30:32 tsjensen - * Bugfix: justify_line() still didn't work right. It should now. - * - * Revision 1.4 1999/07/21 16:50:48 tsjensen - * Added GNU GPL disclaimer - * Bugfix: When doing the line justification in output_box(), the padding - * was counted as part of the modifyable inner part of the box instead of - * the fixed box itself, which resulted in strange bugs (tricky one). - * - * Revision 1.3 1999/06/25 18:42:50 tsjensen - * Added justify_line() function for alignment of lines inside the text block - * Cleaned up hfill calculation in output_box() - * Changed parameters of empty_side() calls to comply with new signature - * - * Revision 1.2 1999/06/23 19:23:55 tsjensen - * Added output_box() from boxes.c - * - * Revision 1.1 1999/06/23 18:52:54 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/generate.h b/src/generate.h index 44d41da..8763fec 100644 --- a/src/generate.h +++ b/src/generate.h @@ -3,12 +3,11 @@ * Project Main: boxes.c * Date created: June 23, 1999 (Wednesday, 20:12h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: generate.h,v 1.4 2006/07/12 05:41:52 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Box generation, i.e. the drawing of boxes * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,21 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: generate.h,v $ - * Revision 1.4 2006/07/12 05:41:52 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.3 1999-08-14 12:30:01-07 tsjensen - * Added GNU GPL disclaimer - * - * Revision 1.2 1999/06/25 18:45:12 tsjensen - * Added output_box() function - * - * Revision 1.1 1999/06/23 18:53:03 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/lexer.h b/src/lexer.h index 41d7e68..f316885 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -3,12 +3,11 @@ * Project Main: boxes.c * Date created: July 01, 1999 (Thursday, 13:43h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: lexer.h,v 1.5 2006/07/12 05:33:12 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Export symbols used by the parser files only * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,26 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: lexer.h,v $ - * Revision 1.5 2006/07/12 05:33:12 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.4 1999-08-18 08:42:46-07 tsjensen - * Added LEX_SDELIM macro (valid string delimiter characters) - * Added prototype for chg_strdelims() - * - * Revision 1.3 1999/08/14 19:06:26 tsjensen - * Added GNU GPL disclaimer - * Added yylex() declaration to please compiler - * - * Revision 1.2 1999/07/03 16:12:19 tsjensen - * Renamed file from parser.h to lexer.h - * - * Revision 1.1 1999/07/02 11:47:11 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/lexer.l b/src/lexer.l index df1d49e..ce9dce8 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -3,11 +3,11 @@ * File: lexer.l * Date created: March 15, 1999 (Monday, 17:16h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: lexer.l,v 1.19 2006/07/22 19:31:25 tsjensen Exp $ * Language: lex (ANSI C) + * Web Site: http://boxes.thomasjensen.com/ * Purpose: flex lexical analyzer for boxes configuration files * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -19,86 +19,10 @@ * License along with this program; if not, write to the Free * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA - * - We don't use the yylineno %option. It is not only inefficient, + * + * Remarks: - We don't use the yylineno %option. It is not only inefficient, * but also doesn't work. :-| *doh* * - * Revision History: - * - * $Log: lexer.l,v $ - * Revision 1.19 2006/07/22 19:31:25 tsjensen - * Fix: Renamed yylineno to tjlineno to enable compilation on certain - * flexes (reported by Andreas Heiduk) - * - * Revision 1.18 2006/07/07 07:24:17 tsjensen - * Applied patch by Andreas Heiduk to facilitate compilation with - * present-day flexes - * - * Revision 1.17 1999/08/20 19:51:12 tsjensen - * Moved contents of YY_USER_INIT definition into a separate function which - * is now called by YY_USER_INIT (better readability) - * - * Revision 1.16 1999/08/18 18:23:41 tsjensen - * Declared yyerrcnt to be static - * Added YY_USER_INIT macro to set the input buffer size to the config file - * size (plus a bit). This is supposed to be a workaround for the REJECT - * problem. - * - * Revision 1.15 1999/08/18 15:40:10 tsjensen - * Added %options never-interactive and caseless - * Added code for DELIMITER statements - * Rewrote string rules to deal with delimiter statements - * - * Revision 1.14 1999/08/16 16:28:03 tsjensen - * Implemented new SAMPLE block syntax - * Replaced states SAMPLE1 and SAMPLE2 with new state SAMPLE - this is now - * much simpler code - * - * Revision 1.13 1999/07/22 12:21:14 tsjensen - * Added GNU GPL disclaimer - * Renamed y.tab.h include to parser.h (same file) - * Renamed parser.h include to lexer.h (same file) - * Added config.h include - * - * Revision 1.12 1999/07/02 11:58:15 tsjensen - * Added begin_speedmode() which is called by parser.y - * Added state SPEEDMODE for fast skipping of designs - * Introduced definitions for PWORD, PBOX, and PWHITE (whitespace) - * Added %options nounput and noyywrap for easier compilation/linking - * - * Revision 1.11 1999/06/28 18:37:38 tsjensen - * Replaced DEBUG macro with LEXER_DEBUG, which is now activated in boxes.h - * New tokens to, with, global, once - * Added LEX_MAX_WARN macro to limit number of lex errors printed per design - * Replaced exit()s with return YUNREC where errors are not fatal - * - * Revision 1.10 1999/06/28 12:17:46 tsjensen - * Added tokens YBOX and YEND (thus, BOX and END are no longer YKEYWORDs) - * Added #define FILE_LEXER_L around #include boxes.h to please compiler - * - * Revision 1.9 1999/06/22 12:00:05 tsjensen - * Added #undef DEBUG, because DEBUGging is now activated in boxes.h - * Added #include tools.h - * - * Revision 1.8 1999/06/20 14:17:58 tsjensen - * Added "padding" keyword and recognition of numbers (YNUMBER) - * - * Revision 1.7 1999/06/17 19:05:46 tsjensen - * Bugfix: Sample block analysis didn't handle empty blocks - * - * Revision 1.6 1999/06/14 12:13:41 tsjensen - * Added Reverse pattern - * - * Revision 1.4 1999/04/09 13:31:13 tsjensen - * Removed all code related to OFFSET blocks (obsolete) - * - * Revision 1.3 1999/04/04 16:11:39 tsjensen - * Added indent keyword - * Added Replace token - * Some fiddling which will hopefully fix a line counting bug - * - * Revision 1.1 1999/03/18 15:09:48 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/parser.y b/src/parser.y index c737554..4deebe5 100644 --- a/src/parser.y +++ b/src/parser.y @@ -3,12 +3,11 @@ * File: parser.y * Date created: March 16, 1999 (Tuesday, 17:17h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: parser.y,v 1.25 2006/07/23 16:11:39 tsjensen Exp $ * Language: GNU bison (ANSI C) - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Yacc parser for boxes configuration files * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,115 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: parser.y,v $ - * Revision 1.25 2006/07/23 16:11:39 tsjensen - * Removed unsigned modifier from a pointer declaration in order to clear a warning - * which appeared on some Linuxes (reported by Andreas Heiduk) - * - * Revision 1.24 2006/07/22 19:30:55 tsjensen - * Fix: Renamed yylineno to tjlineno to enable compilation on certain - * flexes (reported by Andreas Heiduk) - * - * Revision 1.23 2006/07/12 05:31:25 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.22 1999-08-21 08:53:58-07 tsjensen - * Removed check for empty sample block, which is also done in lexer.l - * - * Revision 1.21 1999/08/18 15:38:44 tsjensen - * Added new tokens YCHGDEL and YDELWORD - * Added code for DELIMITER statements - * - * Revision 1.20 1999/08/16 16:29:25 tsjensen - * Changed SAMPLE block syntax to get rid of all the quoting sh*t in SAMPLE - * blocks. Samples now look authentic even in the config file. Very simple now. - * Added new token YENDSAMPLE in the process. - * - * Revision 1.19 1999/08/14 19:19:25 tsjensen - * Added anz_shapespec variable to count non-deepempty user-specified shapes - * (must at least be 1) - * Moved yylex declaration to lexer.h, where it belongs - * Bugfix: bison and yacc seem to differ in the way action code is treated - * which is associated with an error token. Since bison calls the action - * routine whenever a token is skipped while recovering, added skipping - * variable to ensure that only one "skipping to next design" message is - * printed. That was not necessary before. %-/ - * Removed existence check from corner_check() routine (obsolete). - * Added code to generate required shapes which were not specified by the user - * Clean-up in shape_def rule (use freeshape() and some more) - * - * Revision 1.18 1999/07/23 16:14:17 tsjensen - * Added computation of height of highest shape in design (maxshapeheight) - * Options -l and -d together now call quickinfo mode -> parse only 1 design - * - * Revision 1.17 1999/07/22 12:27:16 tsjensen - * Added GNU GPL disclaimer - * Renamed parser.h include to lexer.h (same file) - * Added include config.h - * - * Revision 1.16 1999/07/02 11:54:52 tsjensen - * Some minor changes to please compiler - * Communication of speed mode to lexer - * Bugfix: Forgot to check for opt.l before calling YYACCEPT - * - * Revision 1.15 1999/06/30 12:13:47 tsjensen - * Now parsing only those designs which will be needed later on - * Checks formerly done in boxes.c now done here (no valid designs etc.) - * - * Revision 1.14 1999/06/28 18:32:51 tsjensen - * Unified appearance of error messages, which are now all based on yyerror() - * Eliminated duplicate code by introducing intermediate rules - * New tokens YTO, YWITH, and YRXPFLAG to reduce strcasecmp() usage - * New token YUNREC for integration of lexer into error handling - * Some code restructuring and rule renaming for better consistency - * Added out-of-memory-checks to many strdup()s and such - * - * Revision 1.13 1999/06/28 12:15:47 tsjensen - * Added error handling. Now skips to next design on error. - * Replaced DEBUG macro with PARSER_DEBUG, which is now activated in boxes.h - * Added rule first_rule, which performs init and cleanup formerly done in main() - * Introduced symbols YBOX and YEND - * - * Revision 1.12 1999/06/22 12:01:01 tsjensen - * Added #undef DEBUG, because DEBUGging is now activated in boxes.h - * Added #include tools.h - * - * Revision 1.11 1999/06/20 14:18:51 tsjensen - * Adden YPADDING and YNUMBER tokens plus code for padding blocks - * - * Revision 1.10 1999/06/17 19:04:45 tsjensen - * Added detection of empty sample blocks (we don't want that) - * Added detection of duplicate sample blocks - * - * Revision 1.9 1999/06/14 12:13:01 tsjensen - * Added YREVERSE token - * Added code for regexp reversion - * - * Revision 1.7 1999/04/09 13:31:54 tsjensen - * Added checks for duplicate design names - * Added checks for valid design names (no extended ASCII or ctrl chars) - * Removed all code related to OFFSET blocks (obsolete) - * - * Revision 1.6 1999/04/04 16:07:53 tsjensen - * Enforced use of PROJECT macro - * Added "indent" directive to grammar - * Added "replace" directive to grammar - * - * Revision 1.5 1999/03/30 13:29:50 tsjensen - * Added computation of minimum width/height of each design. - * - * Revision 1.4 1999/03/30 09:37:51 tsjensen - * It drew a correct box for the first time! - * - * Revision 1.3 1999/03/24 17:29:12 tsjensen - * Added detection of empty shapes ("") which are now cleared (+warning) - * Changed rcs string to #ident directive - * - * Revision 1.1 1999/03/18 15:10:06 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/regexp/regsub.c b/src/regexp/regsub.c index 0abef11..d42497a 100644 --- a/src/regexp/regsub.c +++ b/src/regexp/regsub.c @@ -3,11 +3,10 @@ * Date created: Copyright (c) 1986 by University of Toronto. * Author: Henry Spencer. * Extensions and modifications by Thomas Jensen - * Version: $Id: regsub.c,v 1.7 2006/07/23 16:15:55 tsjensen Exp $ * Language: K&R C (traditional) - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Perform substitutions after a regexp match - * Remarks: - Not derived from licensed software. + * License: - Not derived from licensed software. * - Permission is granted to anyone to use this * software for any purpose on any computer system, * and to redistribute it freely, subject to the @@ -21,32 +20,6 @@ * 3. Altered versions must be plainly marked as such, * and must not be misrepresented as being the * original software. - * Revision History: - * - * $Log: regsub.c,v $ - * Revision 1.7 2006/07/23 16:15:55 tsjensen - * Undo of previous version - * Added include string.h and removed manual extern declarations for strncpy() - * - * Revision 1.6 2006/07/22 19:01:10 tsjensen - * Added extern declaration of strncpy() to myregsub(), hoping this will clear some warnings on Debian - * - * Revision 1.5 2006/07/12 05:20:26 tsjensen - * Updated world wide web link in comment header - * - * Revision 1.4 1999-07-20 11:51:41-07 tsjensen - * Bugfix: REPLACE "^" with "a" caused a hangup. Now automatically declaring - * matches which have a length of zero to be of scope "once". - * - * Revision 1.3 1999/04/12 18:13:57 tsjensen - * Added missing '$' to rcs id string, changed from #ident to char - * - * Revision 1.2 1999/04/05 19:39:27 tsjensen - * Hopefully fixed a potential buffer overrun problem in regsub() - * - * Revision 1.1 1999/04/04 16:14:46 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/remove.c b/src/remove.c index 5aae3c4..9b65459 100644 --- a/src/remove.c +++ b/src/remove.c @@ -3,12 +3,11 @@ * Project Main: boxes.c * Date created: June 23, 1999 (Wednesday, 20:59h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: remove.c,v 1.8 2006/07/22 19:19:26 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Box removal, i.e. the deletion of boxes * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,41 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: remove.c,v $ - * Revision 1.8 2006/07/22 19:19:26 tsjensen - * Applied patch by Christoph Dreyer to support unexpansion of leading tabs - * Added ability to retain existing tabs - * - * Revision 1.7 2006/07/12 05:28:58 tsjensen - * Updated email and web addresses in comment header - * Added trim_only flag to output_input() function, used for box mending - * - * Revision 1.6 1999-11-08 02:51:41-08 tsjensen - * Bugfix: For non-empty left box sides, spaces belonging to "empty" shape - * lines were not properly removed in some cases - * - * Revision 1.5 1999/11/07 17:46:26 tsjensen - * Bugfix: Horizontal box parts were not correctly detected if the west box - * side was empty (reported: Tobias Buchal) - * Bugfix: boxes could hang in detect_horiz() due to goeast/west confusion - * - * Revision 1.4 1999/08/21 16:03:31 tsjensen - * Bugfix: When matching vertical side shape lines, ignore empty shape lines - * - * Revision 1.3 1999/07/20 18:57:16 tsjensen - * Added GNU GPL disclaimer - * Does not kill leading/trailing blank lines anymore when !opt.killblank - * Added include config.h - * - * Revision 1.2 1999/06/25 18:45:33 tsjensen - * Added initialization of mmok to please compiler - * Changed parameters of empty_side() calls to comply with new signature - * - * Revision 1.1 1999/06/23 19:14:53 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/remove.h b/src/remove.h index 245cf59..684eea2 100644 --- a/src/remove.h +++ b/src/remove.h @@ -3,12 +3,11 @@ * Project Main: boxes.c * Date created: June 23, 1999 (Wednesday, 21:00h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: remove.h,v 1.3 2006/07/12 05:28:31 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Box removal, i.e. the deletion of boxes * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,18 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: remove.h,v $ - * Revision 1.3 2006/07/12 05:28:31 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.2 1999-07-23 09:16:40-07 tsjensen - * Added GNU GPL disclaimer - * - * Revision 1.1 1999/06/23 19:15:00 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/shape.c b/src/shape.c index 9a2509f..33ea8e9 100644 --- a/src/shape.c +++ b/src/shape.c @@ -3,12 +3,11 @@ * Project Main: boxes.c * Date created: June 23, 1999 (Wednesday, 13:39h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: shape.c,v 1.6 2006/07/12 05:27:29 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Shape handling and information functions * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,32 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: shape.c,v $ - * Revision 1.6 2006/07/12 05:27:29 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.5 1999-08-14 12:11:53-07 tsjensen - * Added findshape(), genshape(), freeshape(), and isdeepempty() functions - * Added on_side() back in with a few changes - * Changed empty_side() to use isdeepempty() -> much simpler code - * - * Revision 1.4 1999/07/23 16:38:02 tsjensen - * Removed functions iscorner(), on_side(), shapecmp(), both_on_side(), and - * shape_distance() - nobody was using them anyway. - * - * Revision 1.3 1999/07/22 12:28:25 tsjensen - * Added GNU GPL disclaimer - * Added include config.h - * - * Revision 1.2 1999/06/25 18:52:28 tsjensen - * Added empty_side() function from boxes.c - * Removed #include regexp.h - * - * Revision 1.1 1999/06/23 12:26:59 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/shape.h b/src/shape.h index 0921dd5..c8a0003 100644 --- a/src/shape.h +++ b/src/shape.h @@ -3,12 +3,11 @@ * Project Main: boxes.c * Date created: June 23, 1999 (Wednesday, 13:45h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: shape.h,v 1.5 2006/07/12 05:27:59 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Shape handling and information functions * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -21,29 +20,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: shape.h,v $ - * Revision 1.5 2006/07/12 05:27:59 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.4 1999-08-14 12:08:34-07 tsjensen - * Added genshape(), freeshape(), and findshape() prototypes - * Added on_side() prototype back again - * Added isdeepempty() prototype - * Changed first parameter of empty_side() prototype - * - * Revision 1.3 1999/07/23 16:36:33 tsjensen - * Added GNU GPL disclaimer - * Removed prototypes of iscorner(), on_side(), shapecmp(), both_on_side(), - * and shape_distance() - nobody was using those anyway. - * - * Revision 1.2 1999/06/25 18:52:59 tsjensen - * Added empty_side() prototype - * - * Revision 1.1 1999/06/23 12:27:06 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/tools.c b/src/tools.c index e7abb81..88b3f31 100644 --- a/src/tools.c +++ b/src/tools.c @@ -3,13 +3,12 @@ * Project Main: boxes.c * Date created: June 20, 1999 (Sunday, 16:51h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: tools.c,v 1.7 2006/07/22 19:27:15 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Provide tool functions for error reporting and some * string handling * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -22,34 +21,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: tools.c,v $ - * Revision 1.7 2006/07/22 19:27:15 tsjensen - * Changed expand_tabs_into() so that it records the original tab positions in a line - * Added tabbify_indent() to restore original leading tabs after box processing - * - * Revision 1.6 2006/07/12 05:25:47 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.5 1999-08-31 08:35:13-07 tsjensen - * Applied Joe Zbiciak's patches to remove all snprintf()s and variants - * Added concat_strings() function and changed yyerror() in the process - * - * Revision 1.4 1999/08/21 16:09:33 tsjensen - * Removed newline check from empty_line() function - * - * Revision 1.3 1999/08/13 23:54:24 tsjensen - * Bugfix: cut&paste error in in strisyes() and strisno(). Thanks Warren Seltzer - * - * Revision 1.2 1999/07/20 18:55:20 tsjensen - * Added GNU GPL disclaimer - * Added functions strisyes() and strisno() - * Added config.h and shape.h include statements - * - * Revision 1.1 1999/06/23 11:19:30 tsjensen - * Initial revision - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ diff --git a/src/tools.h b/src/tools.h index 0cb5bbe..33efa74 100644 --- a/src/tools.h +++ b/src/tools.h @@ -3,13 +3,12 @@ * Project Main: boxes.c * Date created: June 20, 1999 (Sunday, 16:57h) * Author: Copyright (C) 1999 Thomas Jensen - * Version: $Id: tools.h,v 1.5 2006/07/22 19:11:07 tsjensen Exp $ * Language: ANSI C - * World Wide Web: http://boxes.thomasjensen.com/ + * Web Site: http://boxes.thomasjensen.com/ * Purpose: Tool functions for error reporting and some string * handling and other needful things * - * Remarks: o This program is free software; you can redistribute it and/or + * License: o This program 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 2 of * the License, or (at your option) any later version. @@ -22,28 +21,6 @@ * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * - * Revision History: - * - * $Log: tools.h,v $ - * Revision 1.5 2006/07/22 19:11:07 tsjensen - * Changed expand_tabs_into() signature in order to support advanced tab handling - * Added tabbify_indent() - * - * Revision 1.4 2006/07/12 05:25:27 tsjensen - * Updated email and web addresses in comment header - * - * Revision 1.3 1999-08-31 08:38:42-07 tsjensen - * Added concat_strings() function prototype from Joe Zbiciak's patches - * - * Revision 1.2 1999/07/20 18:56:15 tsjensen - * Added GNU GPL disclaimer - * Removed include boxes.h - * Added prototypes for strisyes() and strisno() - * - * Revision 1.1 1999/06/23 11:19:59 tsjensen - * Initial revision - * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */