BEGIN	{
	  FS="\"";
	  print "/* ==> Do not modify this file!!  " \
		"-*- buffer-read-only: t -*- vi" \
		":set ro:";
	  print "   It is created automatically by copying.awk.";
	  print "   Modify copying.awk instead.  <== */";
	  print ""
	  print "#include \"command.h\""
	  print "#include \"cli/cli-cmds.h\""
	  print ""
	  print "static void show_copying_command (const char *, int);"
	  print ""
	  print "static void show_warranty_command (const char *, int);"
	  print ""
	  print "static void";
	  print "show_copying_command (const char *ignore, int from_tty)";
	  print "{";
	}
NR == 1,/^[ 	]*15\. Disclaimer of Warranty\.[ 	]*$/	{
	  if ($0 ~ //)
	    {
	      printf "  gdb_printf (\"\\n\");\n";
	    }
	  else if ($0 !~ /^[ 	]*15\. Disclaimer of Warranty\.[ 	]*$/) 
	    {
	      printf "  gdb_printf (\"";
	      for (i = 1; i < NF; i++)
		printf "%s\\\"", $i;
	      printf "%s\\n\");\n", $NF;
	    }
	}
/^[	 ]*15\. Disclaimer of Warranty\.[ 	]*$/	{
	  print "}";
	  print "";
	  print "static void";
	  print "show_warranty_command (const char *ignore, int from_tty)";
	  print "{";
	}
/^[ 	]*15\. Disclaimer of Warranty\.[ 	]*$/, /^[ 	]*END OF TERMS AND CONDITIONS[ 	]*$/{  
	  if (! ($0 ~ /^[ 	]*END OF TERMS AND CONDITIONS[ 	]*$/)) 
	    {
	      printf "  gdb_printf (\"";
	      for (i = 1; i < NF; i++)
		printf "%s\\\"", $i;
	      printf "%s\\n\");\n", $NF;
	    }
	}
END	{
	  print "}";
	  print "";
	  print "void _initialize_copying ();"
	  print "void"
	  print "_initialize_copying ()";
	  print "{";
	  print "  add_cmd (\"copying\", no_set_class, show_copying_command,";
	  print "	   _(\"Conditions for redistributing copies of GDB.\"),";
	  print "	   &showlist);";
	  print "  add_cmd (\"warranty\", no_set_class, show_warranty_command,";
	  print "	   _(\"Various kinds of warranty you do not have.\"),";
	  print "	   &showlist);";
	  print "";
	  print "  /* For old-timers, allow \"info copying\", etc.  */";
	  print "  add_info (\"copying\", show_copying_command,";
	  print "	    _(\"Conditions for redistributing copies of GDB.\"));";
	  print "  add_info (\"warranty\", show_warranty_command,";
	  print "	    _(\"Various kinds of warranty you do not have.\"));";
	  print "}";
	}
