diff --git a/ChangeLog b/ChangeLog index 1503c8a478..64f295c8e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Jun 4 12:12:11 BST 1998 Tony Gale + + * examples/extract.sh, examples/extract.awk: + New files to automagically extract code examples from the + tutorial. + Tue Jun 2 20:04:45 1998 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_page_select) (gtk_notebook_focus) diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 1503c8a478..64f295c8e4 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Thu Jun 4 12:12:11 BST 1998 Tony Gale + + * examples/extract.sh, examples/extract.awk: + New files to automagically extract code examples from the + tutorial. + Tue Jun 2 20:04:45 1998 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_page_select) (gtk_notebook_focus) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 1503c8a478..64f295c8e4 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Thu Jun 4 12:12:11 BST 1998 Tony Gale + + * examples/extract.sh, examples/extract.awk: + New files to automagically extract code examples from the + tutorial. + Tue Jun 2 20:04:45 1998 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_page_select) (gtk_notebook_focus) diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 1503c8a478..64f295c8e4 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Thu Jun 4 12:12:11 BST 1998 Tony Gale + + * examples/extract.sh, examples/extract.awk: + New files to automagically extract code examples from the + tutorial. + Tue Jun 2 20:04:45 1998 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_page_select) (gtk_notebook_focus) diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 1503c8a478..64f295c8e4 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Thu Jun 4 12:12:11 BST 1998 Tony Gale + + * examples/extract.sh, examples/extract.awk: + New files to automagically extract code examples from the + tutorial. + Tue Jun 2 20:04:45 1998 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_page_select) (gtk_notebook_focus) diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 1503c8a478..64f295c8e4 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Thu Jun 4 12:12:11 BST 1998 Tony Gale + + * examples/extract.sh, examples/extract.awk: + New files to automagically extract code examples from the + tutorial. + Tue Jun 2 20:04:45 1998 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_page_select) (gtk_notebook_focus) diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 1503c8a478..64f295c8e4 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Thu Jun 4 12:12:11 BST 1998 Tony Gale + + * examples/extract.sh, examples/extract.awk: + New files to automagically extract code examples from the + tutorial. + Tue Jun 2 20:04:45 1998 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_page_select) (gtk_notebook_focus) diff --git a/examples/extract.awk b/examples/extract.awk new file mode 100644 index 0000000000..44cd32a3d2 --- /dev/null +++ b/examples/extract.awk @@ -0,0 +1,57 @@ +# extract - extract C source files from GTK Tutorial +# Copyright (C) Tony Gale 1998 +# Contact: gale@gtk.org +# +# Command Switches: +# -c : Just do checking rather than output files +# -f : Extract a specific file +# -d : Extract files to current directory + +BEGIN {in_example=0; check=0; spec_example=""; do_output=0; flatten=0 + for (i=0 ; i < ARGC ; i++) { + if ( ARGV[i] == "-c" ) { + check = 1; + ARGV[i]=""; + } else if ( ARGV[i] == "-f" ) { + spec_example=ARGV[i+1]; + ARGV[i]=""; + ARGV[i+1]=""; + if ( length(spec_example) == 0 ) { + print "usage: -f "; + exit; + } + } else if ( ARGV[i] == "-d" ) { + flatten = 1; + ARGV[i]=""; + } + } + } + +$2 == "example-start" && in_example == 1 { printf("\nERROR: nested example at line %d\n", NR) > "/dev/stderr"; + exit} + +$2 == "example-start" { in_example=1 } + +$2 == "example-start" && check == 0 \ + { if ( (spec_example == "") || (spec_example == $4) ) { + if ( flatten == 0 ) { + file_name = sprintf("%s/%s",$3, $4); + command = sprintf("mkdir -p %s", $3); + system(command); + } else { + file_name = $4; + } + do_output=1; + } + } + +in_example==1 && check==0 && do_output==1 { gsub(/&/, "\\&", $0); + print $0 >file_name } + +$2 == "example-end" && in_example == 0 { printf("\nERROR: multiple ends at line %d\n", NR) > "/dev/stderr"; + exit} +$2 == "example-end" { in_example=0; do_output=0 } + + +END {} + diff --git a/examples/extract.sh b/examples/extract.sh new file mode 100755 index 0000000000..b19e19a209 --- /dev/null +++ b/examples/extract.sh @@ -0,0 +1,2 @@ +#! /bin/sh +awk -f extract.awk ../docs/gtk_tut.sgml $1 $2 $3 $4 $5