On Mon, Dec 11, 2017 at 11:35:42AM +0100, Theo Buehler wrote:
> On Mon, Dec 11, 2017 at 10:11:44AM +0100, Martijn van Duren wrote:
> > ping
> > 
> > On 11/11/17 10:59, Martijn van Duren wrote:
> > > Hello tech@,
> > > 
> > > I've gotten confused by the awk scripts a few times now.
> > > They seem to unused and I had to really look where they were originally
> > > intended. For the curious:
> > > awk -f common/options.awk common/options.c > include/options_def.h
> > > awk -f ex/ex.awk ex/ex_cmd.c > include/ex_def.h
> > > 
> > > The options_def.h file has moved from define to enum by bentley earlier
> > > this year, so there seems to be no motivation to move back to the awk
> > > scripts.
> > > 
> > > This does however mean that we have to keep a close eye on the options
> > > and commands we expose and keep them in sync manually.
> > > 
> > > Another option would be to keep the scripts and hook them into the
> > > makefile and cvs rm include/{options,ex}_def.h, but that would require
> > > some black magic I haven't mastered yet.
> 
> I'm not 100% sure it's a good idea to generate these files from the
> source files, but one could consider doing something like this instead:
> 
> Generate options_def.h and ex_def.h in build/obj/ using the awk files if
> needed and remove them from includes/ and thus the need to maintain them
> manually.
> 
> I changed options.awk to emit an enum instead of the #defines (but this
> is not really needed).  This way, the only difference between the files
> in build and includes is in the options comment.

Sigh, I mangled this last sentence. I meant to say: The only difference
between the originals in includes/ and the generated files is the missing
cvs tags.

> Index: usr.bin/vi/build/Makefile
> ===================================================================
> RCS file: /var/cvs/src/usr.bin/vi/build/Makefile,v
> retrieving revision 1.24
> diff -u -p -r1.24 Makefile
> --- usr.bin/vi/build/Makefile 30 Mar 2016 06:38:46 -0000      1.24
> +++ usr.bin/vi/build/Makefile 11 Dec 2017 10:12:10 -0000
> @@ -4,7 +4,7 @@
>  PROG=        vi
>  
>  # Modern curses (ncurses)
> -CFLAGS+=-I${.CURDIR} -I${.CURDIR}/../include
> +CFLAGS+=-I${.CURDIR} -I${.CURDIR}/../include -I.
>  LDADD+=-lcurses
>  DPADD+= ${LIBCURSES}
>  
> @@ -37,6 +37,16 @@ SRCS=      cl_funcs.c cl_main.c cl_read.c cl_
>  
>  LINKS=       ${BINDIR}/vi ${BINDIR}/ex
>  LINKS+=      ${BINDIR}/vi ${BINDIR}/view
> +
> +options_def.h: common/options.awk common/options.c
> +     awk -f ${.CURDIR}/../common/options.awk ${.CURDIR}/../common/options.c \
> +             > options_def.h
> +
> +ex_def.h: ex/ex.awk ex/ex_cmd.c
> +     awk -f ${.CURDIR}/../ex/ex.awk ${.CURDIR}/../ex/ex_cmd.c > ex_def.h
> +
> +BUILDFIRST = options_def.h ex_def.h
> +CLEANFILES += options_def.h ex_def.h
>  
>  .PATH: ${.CURDIR}/../vi ${.CURDIR}/../ex ${.CURDIR}/../cl 
> ${.CURDIR}/../common ${.CURDIR}/../docs/USD.doc/vi.man
>  
> Index: usr.bin/vi/common/options.awk
> ===================================================================
> RCS file: /var/cvs/src/usr.bin/vi/common/options.awk,v
> retrieving revision 1.3
> diff -u -p -r1.3 options.awk
> --- usr.bin/vi/common/options.awk     29 Jan 2001 01:58:31 -0000      1.3
> +++ usr.bin/vi/common/options.awk     11 Dec 2017 10:20:39 -0000
> @@ -1,11 +1,16 @@
>  #    $OpenBSD: options.awk,v 1.3 2001/01/29 01:58:31 niklas Exp $
>  
>  #    @(#)options.awk 10.1 (Berkeley) 6/8/95
> - 
> +
> +BEGIN {
> +     printf("enum {\n");
> +     first = 1;
> +}
>  /^\/\* O_[0-9A-Z_]*/ {
> -     printf("#define %s %d\n", $2, cnt++);
> +     printf("\t%s%s,\n", $2, first ? " = 0" : "");
> +     first = 0;
>       next;
>  }
>  END {
> -     printf("#define O_OPTIONCOUNT %d\n", cnt);
> +     printf("\tO_OPTIONCOUNT,\n};\n");
>  }
> Index: usr.bin/vi/include/ex_def.h
> ===================================================================
> RCS file: usr.bin/vi/include/ex_def.h
> diff -N usr.bin/vi/include/ex_def.h
> --- usr.bin/vi/include/ex_def.h       19 Nov 2015 07:53:31 -0000      1.5
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,76 +0,0 @@
> -/*   $OpenBSD: ex_def.h,v 1.5 2015/11/19 07:53:31 bentley Exp $      */
> -
> -#define C_SCROLL 0
> -#define C_BANG 1
> -#define C_HASH 2
> -#define C_SUBAGAIN 3
> -#define C_STAR 4
> -#define C_SHIFTL 5
> -#define C_EQUAL 6
> -#define C_SHIFTR 7
> -#define C_AT 8
> -#define C_APPEND 9
> -#define C_ABBR 10
> -#define C_ARGS 11
> -#define C_BG 12
> -#define C_CHANGE 13
> -#define C_CD 14
> -#define C_CHDIR 15
> -#define C_COPY 16
> -#define C_DELETE 17
> -#define C_DISPLAY 18
> -#define C_EDIT 19
> -#define C_EX 20
> -#define C_EXUSAGE 21
> -#define C_FILE 22
> -#define C_FG 23
> -#define C_GLOBAL 24
> -#define C_HELP 25
> -#define C_INSERT 26
> -#define C_JOIN 27
> -#define C_K 28
> -#define C_LIST 29
> -#define C_MOVE 30
> -#define C_MARK 31
> -#define C_MAP 32
> -#define C_MKEXRC 33
> -#define C_NEXT 34
> -#define C_NUMBER 35
> -#define C_OPEN 36
> -#define C_PRINT 37
> -#define C_PRESERVE 38
> -#define C_PREVIOUS 39
> -#define C_PUT 40
> -#define C_QUIT 41
> -#define C_READ 42
> -#define C_RECOVER 43
> -#define C_RESIZE 44
> -#define C_REWIND 45
> -#define C_SUBSTITUTE 46
> -#define C_SCRIPT 47
> -#define C_SET 48
> -#define C_SHELL 49
> -#define C_SOURCE 50
> -#define C_STOP 51
> -#define C_SUSPEND 52
> -#define C_T 53
> -#define C_TAG 54
> -#define C_TAGNEXT 55
> -#define C_TAGPOP 56
> -#define C_TAGPREV 57
> -#define C_TAGTOP 58
> -#define C_UNDO 59
> -#define C_UNABBREVIATE 60
> -#define C_UNMAP 61
> -#define C_V 62
> -#define C_VERSION 63
> -#define C_VISUAL_EX 64
> -#define C_VISUAL_VI 65
> -#define C_VIUSAGE 66
> -#define C_WRITE 67
> -#define C_WN 68
> -#define C_WQ 69
> -#define C_XIT 70
> -#define C_YANK 71
> -#define C_Z 72
> -#define C_SUBTILDE 73
> Index: usr.bin/vi/include/options_def.h
> ===================================================================
> RCS file: usr.bin/vi/include/options_def.h
> diff -N usr.bin/vi/include/options_def.h
> --- usr.bin/vi/include/options_def.h  3 Jul 2017 07:01:14 -0000       1.8
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,75 +0,0 @@
> -/*   $OpenBSD: options_def.h,v 1.8 2017/07/03 07:01:14 bentley Exp $ */
> -
> -enum {
> -     O_ALTWERASE = 0,
> -     O_AUTOINDENT,
> -     O_AUTOPRINT,
> -     O_AUTOWRITE,
> -     O_BACKUP,
> -     O_BEAUTIFY,
> -     O_CDPATH,
> -     O_CEDIT,
> -     O_COLUMNS,
> -     O_COMMENT,
> -     O_EDCOMPATIBLE,
> -     O_ESCAPETIME,
> -     O_ERRORBELLS,
> -     O_EXRC,
> -     O_EXTENDED,
> -     O_FILEC,
> -     O_FLASH,
> -     O_HARDTABS,
> -     O_ICLOWER,
> -     O_IGNORECASE,
> -     O_KEYTIME,
> -     O_LEFTRIGHT,
> -     O_LINES,
> -     O_LIST,
> -     O_LOCKFILES,
> -     O_MAGIC,
> -     O_MATCHTIME,
> -     O_MESG,
> -     O_NOPRINT,
> -     O_NUMBER,
> -     O_OCTAL,
> -     O_OPEN,
> -     O_PARAGRAPHS,
> -     O_PATH,
> -     O_PRINT,
> -     O_PROMPT,
> -     O_READONLY,
> -     O_RECDIR,
> -     O_REMAP,
> -     O_REPORT,
> -     O_RULER,
> -     O_SCROLL,
> -     O_SEARCHINCR,
> -     O_SECTIONS,
> -     O_SECURE,
> -     O_SHELL,
> -     O_SHELLMETA,
> -     O_SHIFTWIDTH,
> -     O_SHOWMATCH,
> -     O_SHOWMODE,
> -     O_SIDESCROLL,
> -     O_TABSTOP,
> -     O_TAGLENGTH,
> -     O_TAGS,
> -     O_TERM,
> -     O_TERSE,
> -     O_TILDEOP,
> -     O_TIMEOUT,
> -     O_TTYWERASE,
> -     O_VERBOSE,
> -     O_W1200,
> -     O_W300,
> -     O_W9600,
> -     O_WARN,
> -     O_WINDOW,
> -     O_WINDOWNAME,
> -     O_WRAPLEN,
> -     O_WRAPMARGIN,
> -     O_WRAPSCAN,
> -     O_WRITEANY,
> -     O_OPTIONCOUNT,
> -};
> 

Reply via email to