changeset 4894:03ab78e48ef6

Add copyright and license information based on Ben's recollections. Remove two unused internationalization programs and associated Makefile rules. See message <870180fe1001281158n556cf90eib0d6abf34a4f83d4@mail.gmail.com> in xemacs-patches for more information.
author Jerry James <james@xemacs.org>
date Thu, 28 Jan 2010 12:59:48 -0700
parents 99f2102552d7
children 65ad2cd9f2ff
files etc/ChangeLog etc/tests/external-widget/Makefile etc/tests/external-widget/test-ew-motif.c etc/tests/external-widget/test-ew-xlib.c etc/unicode/other/lao.txt lib-src/ChangeLog lib-src/Makefile.in.in lib-src/make-msgfile.c lib-src/make-po.c lwlib/ChangeLog lwlib/lwlib-internal.h man/ChangeLog man/external-widget.texi man/lispref/internationalization.texi nt/ChangeLog nt/compface.mak nt/tiff.mak src/ChangeLog src/Makefile.in.in
diffstat 19 files changed, 200 insertions(+), 662 deletions(-) [+]
line wrap: on
line diff
--- a/etc/ChangeLog	Thu Jan 28 04:02:14 2010 -0600
+++ b/etc/ChangeLog	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,11 @@
+2010-01-28  Jerry James  <james@xemacs.org>
+
+	* tests/external-widget/Makefile: Add copyright and license
+	boilerplate text based on Ben's recollection.
+	* tests/external-widget/test-ew-motif.c: Ditto.
+	* tests/external-widget/test-ew-xlib.c: Ditto.
+	* unicode/other/lao.txt: Ditto.
+
 2010-01-26  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* HELLO: Encode the Arabic in arabic-iso8859-6 once more; delete
--- a/etc/tests/external-widget/Makefile	Thu Jan 28 04:02:14 2010 -0600
+++ b/etc/tests/external-widget/Makefile	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,23 @@
+##   Makefile for external widget test code.
+##   Copyright (C) 1993 Ben Wing.
+
+## This file is part of XEmacs.
+
+## XEmacs 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, or (at your option) any
+## later version.
+
+## XEmacs is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with XEmacs; see the file COPYING.  If not, write to
+## the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+## Boston, MA 02110-1301, USA.
+
 CFLAGS += -Xc -g -DTOOLTALK
 EMACSHOME = ../../..
 EMACSLIBDIR = $(EMACSHOME)/editor/src
--- a/etc/tests/external-widget/test-ew-motif.c	Thu Jan 28 04:02:14 2010 -0600
+++ b/etc/tests/external-widget/test-ew-motif.c	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,23 @@
+/* Test external widget code in Motif.
+   Copyright (C) 1993 Ben Wing.
+
+This file is part of XEmacs.
+
+XEmacs 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, or (at your option) any
+later version.
+
+XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
 #include <Xm/Xm.h>
 #include <Xm/RowColumn.h>
 #include <Xm/Scale.h>
--- a/etc/tests/external-widget/test-ew-xlib.c	Thu Jan 28 04:02:14 2010 -0600
+++ b/etc/tests/external-widget/test-ew-xlib.c	Thu Jan 28 12:59:48 2010 -0700
@@ -1,7 +1,24 @@
-/*
- * Copyright 1989 O'Reilly and Associates, Inc.
- * See ../Copyright for complete rights and liability information.
- */
+/* Test external widget code in Motif.
+   Copyright (C) 1989 O'Reilly and Associates, Inc.
+   Copyright (C) 1993 Ben Wing.
+
+This file is part of XEmacs.
+
+XEmacs 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, or (at your option) any
+later version.
+
+XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/Xos.h>
--- a/etc/unicode/other/lao.txt	Thu Jan 28 04:02:14 2010 -0600
+++ b/etc/unicode/other/lao.txt	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,23 @@
+##   Unicode for Lao
+##   Copyright (C) 2002 Ben Wing.
+
+## This file is part of XEmacs.
+
+## XEmacs 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, or (at your option) any
+## later version.
+
+## XEmacs is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with XEmacs; see the file COPYING.  If not, write to
+## the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+## Boston, MA 02110-1301, USA.
+
 ## Made up based on the comment in lao.el:
 
 ## ;; ISO10646's 0x0E80..0x0EDF are mapped to 0x20..0x7F.
--- a/lib-src/ChangeLog	Thu Jan 28 04:02:14 2010 -0600
+++ b/lib-src/ChangeLog	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,9 @@
+2010-01-28  Jerry James  <james@xemacs.org>
+
+	* Makefile.in.in: Remove make-msgfile and make-po rules.
+	* make-msgfile.c: Removed, obsolete code.
+	* make-po.c: Removed, obsolete code.
+
 2010-01-15  Ben Wing  <ben@xemacs.org>
 
 	* make-mswin-unicode.pl:
--- a/lib-src/Makefile.in.in	Thu Jan 28 04:02:14 2010 -0600
+++ b/lib-src/Makefile.in.in	Thu Jan 28 12:59:48 2010 -0700
@@ -126,8 +126,6 @@
 
 PRIVATE_INSTALLABLES = ${PRIVATE_INSTALLABLE_EXES} ${PRIVATE_INSTALLABLE_SCRIPTS}
 
-## These need to be conditional on I18N3: make-msgfile make-po
-
 ## ----------------------------------------------------------------
 ## Things that XEmacs uses during the build process itself.
 ## Not installed.
@@ -375,12 +373,6 @@
 hexl: ${srcdir}/hexl.c
 	$(CC) $(cflags) ${srcdir}/hexl.c $(ldflags) -o $@
 
-make-msgfile: ${srcdir}/make-msgfile.c
-	$(CC) $(cflags) ${srcdir}/make-msgfile.c $(ldflags) -o $@
-
-make-po: ${srcdir}/make-po.c
-	$(CC) $(cflags) ${srcdir}/make-po.c $(ldflags) -o $@
-
 make-dump-id: ${srcdir}/make-dump-id.c
 	$(CC) $(cflags) ${srcdir}/make-dump-id.c $(ldflags) -o $@
 
--- a/lib-src/make-msgfile.c	Thu Jan 28 04:02:14 2010 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,288 +0,0 @@
-/* #### Old code!  Replaced with make-msgfile.lex. */
-
-
-/* Scan specified C and Lisp files, extracting the following messages:
-
-     C files:
-	GETTEXT (...)
-	DEFER_GETTEXT (...)
-	DEFUN interactive prompts
-     Lisp files:
-	(gettext ...)
-	(dgettext "domain-name" ...)
-	(defer-gettext ...)
-	(interactive ...)
-
-  The arguments given to this program are all the C and Lisp source files
-  of XEmacs.  .el and .c files are allowed.  There is no support for .elc
-  files at this time, but they may be specified; the corresponding .el file
-  will be used.  Similarly, .o files can also be specified, and the corresponding
-  .c file will be used.  This helps the makefile pass the correct list of files.
-
-  The results, which go to standard output or to a file specified with -a or -o
-  (-a to append, -o to start from nothing), are quoted strings wrapped in
-  gettext(...).  The results can be passed to xgettext to produce a .po message
-  file.
-*/
-
-#include <stdio.h>
-#include <string.h>
-
-#define LINESIZE 256
-#define GET_LINE	fgets (line, LINESIZE, infile)
-#define CHECK_EOL(p)	if (*(p) == '\0')  (p) = GET_LINE
-#define SKIP_BLANKS(p)	while ((*p) == ' ' || (*p) == '\t')  (p)++
-
-enum filetype { C_FILE, LISP_FILE, INVALID_FILE };
-/* some brain-dead headers define this ... */
-#undef FALSE
-#undef TRUE
-enum boolean { FALSE, TRUE };
-
-FILE *infile;
-FILE *outfile;
-char line[LINESIZE];
-
-
-void scan_file (char *filename);
-void process_C_file (void);
-void process_Lisp_file (void);
-char *copy_up_to_paren (register char *p);
-char *copy_quoted_string (register char *p);
-enum boolean no_interactive_prompt (register char *q);
-char *skip_blanks (register char *p);
-
-
-main (int argc, char *argv[])
-{
-  register int i;
-
-  outfile = stdout;
-
-  /* If first two args are -o FILE, output to FILE. */
-  i = 1;
-  if (argc > i + 1 && strcmp (argv[i], "-o") == 0) {
-    outfile = fopen (argv[++i], "w");
-    ++i;
-  }
-  /* ...Or if args are -a FILE, append to FILE. */
-  if (argc > i + 1 && strcmp (argv[i], "-a") == 0) {
-    outfile = fopen (argv[++i], "a");
-    ++i;
-  }
-  if (!outfile) {
-    fprintf (stderr, "Unable to open output file %s\n", argv[--i]);
-    return;
-  }
-
-  for (; i < argc; i++)
-    scan_file (argv[i]);
-
-  return 0;
-}
-
-
-void scan_file (char *filename)
-{
-  enum filetype type = INVALID_FILE;
-  register char *p = filename + strlen (filename);
-
-  if (strcmp (p - 4, ".elc") == 0) {
-    *--p = '\0';				/* Use .el file instead */
-    type = LISP_FILE;
-  } else if (strcmp (p - 3, ".el") == 0)
-    type = LISP_FILE;
-  else if (strcmp (p - 2, ".o") == 0) {
-    *--p = 'c';					/* Use .c file instead */
-    type = C_FILE;
-  } else if (strcmp (p - 2, ".c") == 0)
-    type = C_FILE;
-
-  if (type == INVALID_FILE) {
-    fprintf (stderr, "File %s being ignored\n", filename);
-    return;
-  }
-  infile = fopen (filename, "r");
-  if (!infile) {
-    fprintf (stderr, "Unable to open input file %s\n", filename);
-    return;
-  }
-
-  fprintf (outfile, "/* %s */\n", filename);
-  if (type == C_FILE)
-    process_C_file ();
-  else
-    process_Lisp_file ();
-  fputc ('\n', outfile);
-
-  fclose (infile);
-}
-
-
-void process_C_file (void)
-{
-  register char *p;
-  char *gettext, *defun;
-
-  while (p = GET_LINE) {
-    gettext = strstr (p, "GETTEXT");
-    defun = strstr (p, "DEFUN");
-    if (gettext || defun) {
-      if (gettext) {
-	p = gettext;
-	p += 7;			/* Skip over "GETTEXT" */
-      }
-      else if (defun) {
-	p = defun;
-	p += 5;			/* Skip over "DEFUN" */
-      }
-
-      p = skip_blanks (p);
-      if (*p++ != '(')
-	continue;
-
-      if (defun) {
-	register int i;
-
-	for (i = 0; i < 5; i++)	/* Skip over commas to doc string */
-	  while (*p++ != ',')
-	    CHECK_EOL (p);
-	if (*p == '\n')
-	  p = GET_LINE;
-      }
-
-      p = skip_blanks (p);
-      if (*p != '\"')		/* Make sure there is a quoted string */
-	continue;
-
-      if (defun && no_interactive_prompt (p))
-	continue;
-
-      fprintf (outfile, "gettext(");
-      if (gettext)
-	p = copy_up_to_paren (p);
-      else
-	p = copy_quoted_string (p);
-      fprintf (outfile, ")\n");
-    }
-  }
-}
-
-
-void process_Lisp_file (void)
-{
-  register char *p;
-  char *gettext, *interactive;
-  enum boolean dgettext = FALSE;
-
-  while (p = GET_LINE) {
-    gettext = strstr (p, "gettext");
-    interactive = strstr (p, "(interactive");
-    if (gettext || interactive) {
-      if (!interactive)
-	p = gettext;
-      else if (!gettext)
-	p = interactive;
-      else if (gettext < interactive) {
-	p = gettext;
-	interactive = NULL;
-      } else {
-	p = interactive;
-	gettext = NULL;
-      }
-
-      if (gettext) {
-	if (p > line && *(p-1) == 'd')
-	  dgettext = TRUE;
-	p += 7;		/* Skip over "gettext" */
-      } else
-	p += 12;	/* Skip over "(interactive" */
-
-      p = skip_blanks (p);
-      if (*p != '\"')		/* Make sure there is a quoted string */
-	continue;
-
-      if (dgettext) {		/* Skip first quoted string (domain name) */
-	while (*++p != '"')
-	  ;  /* null statement */
-	++p;
-	p = skip_blanks (p);
-	if (*p != '\"')		/* Check for second quoted string (message) */
-	  continue;
-      }
-
-      if (interactive && no_interactive_prompt (p))
-	continue;
-
-      fprintf (outfile, "gettext(");
-      p = copy_up_to_paren (p);
-      fprintf (outfile, ")\n");
-    }
-  }
-}
-
-
-/* Assuming p points to some character beyond an opening parenthesis, copy
-   everything to outfile up to but not including the closing parenthesis.
-*/
-char *copy_up_to_paren (register char *p)
-{
-  for (;;) {
-    SKIP_BLANKS (p);	/* We don't call skip_blanks() in order to */
-    CHECK_EOL (p);	/* preserve blanks at the beginning of the line */
-    if (*p == ')')
-      break;
-
-    if (*p == '\"')
-      p = copy_quoted_string (p);
-    else
-      fputc (*p++, outfile);
-  }
-  return p;
-}
-
-
-/* Assuming p points to a quote character, copy the quoted string to outfile.
-*/
-char *copy_quoted_string (register char *p)
-{
-  do {
-    if (*p == '\\')
-      fputc (*p++, outfile);
-    fputc (*p++, outfile);
-    CHECK_EOL (p);
-  } while (*p != '\"');
-
-  fputc (*p++, outfile);
-  return p;
-}
-
-
-/* Return TRUE if the interactive specification consists only
-   of code letters and no prompt.
-*/
-enum boolean no_interactive_prompt (register char *q)
-{
-  while (++q, *q == '*' || *q == '@')
-    ; /* null statement */
-  if (*q == '\"')
-    return TRUE;
- skip_code_letter:
-  if (*++q == '\"')
-    return TRUE;
-  if (*q == '\\' && *++q == 'n') {
-    ++q;
-    goto skip_code_letter;
-  }
-  return FALSE;
-}
-
-
-char *skip_blanks (register char *p)
-{
-  while (*p == ' ' || *p == '\t' || *p == '\n') {
-    p++;
-    CHECK_EOL (p);
-  }
-  return p;
-}
--- a/lib-src/make-po.c	Thu Jan 28 04:02:14 2010 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,302 +0,0 @@
-/* Generate .po file from doc-string file.
-
-   Scan specified doc-string file, creating .po format messages for processing
-   with msgfmt.  The results go to standard output or to a file specified
-   with -a or -o (-a to append, -o to start from nothing).
-
-   Kludge to make up for shortcoming in make-docfile and Snarf-documentation:
-   If arg before input filename is -p, we are scanning an add-on
-   package, which requires slightly different processing.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#define EXIT_FAILURE 1
-#endif
-
-/* #define BUFSIZE    8192 */
-/* #define BUFSIZE    16384 */
-#define BUFSIZE    32768
-#define NEWSTRING  31      /* Character signalling start of new doc string */
-#define LINEEND    "\\n"
-#define ENDSTRING  "\"\n"
-#define LINEBEGIN  "       \""
-#define LINEBREAK  ENDSTRING LINEBEGIN
-
-/* some brain-dead headers define this ... */
-#undef FALSE
-#undef TRUE
-enum boolean { FALSE, TRUE };
-
-
-/***********************/
-/* buffer pseudo-class */
-/***********************/
-
-typedef struct _buffer
-{
-  size_t index;  /* current position in buf[] */
-  size_t size;   /* size of buf */
-  char *buf;
-} buffer_struct;
-
-#define BUF_NULL  {0, 0, NULL}
-
-int  buf_init  (buffer_struct *buffer, size_t size);
-void buf_free  (buffer_struct *buffer);
-void buf_clear (buffer_struct *buffer);
-int  buf_putc  (buffer_struct *buffer, int c);
-int  buf_print (buffer_struct *buffer, const char *s);
-
-
-/********************/
-/* global variables */
-/********************/
-
-FILE *infile  = NULL;
-FILE *outfile = NULL;
-buffer_struct buf = BUF_NULL;
-
-
-void scan_file (enum boolean package);
-void initialize (void);
-void clean_exit (int status);
-void buf_putc_safe (int c);
-void buf_print_safe (const char *s);
-void terminate_string (void);
-
-main (int argc, char *argv[])
-{
-  register int i;
-  enum boolean package = FALSE;  /* TRUE if scanning add-on package */
-
-  initialize ();
-
-  outfile = stdout;
-
-  /* If first two args are -o FILE, output to FILE. */
-  i = 1;
-  if (argc > i + 1 && strcmp (argv[i], "-o") == 0) {
-    outfile = fopen (argv[++i], "w");
-    ++i;
-  }
-  /* ...Or if args are -a FILE, append to FILE. */
-  if (argc > i + 1 && strcmp (argv[i], "-a") == 0) {
-    outfile = fopen (argv[++i], "a");
-    ++i;
-  }
-  if (!outfile) {
-    fprintf (stderr, "Unable to open output file %s\n", argv[--i]);
-    return 1;
-  }
-
-  if (argc > i && !strcmp (argv[i], "-p")) {
-    package = TRUE;
-    ++i;
-  }
-
-  infile = fopen (argv[i], "r");
-  if (!infile) {
-    fprintf (stderr, "Unable to open input file %s\n", argv[i]);
-    return 1;
-  }
-
-  scan_file (package);
-  clean_exit (EXIT_SUCCESS);
-}
-
-
-void scan_file (enum boolean package)
-{
-  register int c;   /* Character read in */
-
-  fprintf (outfile, "###############\n");
-  fprintf (outfile, "# DOC strings #\n");
-  fprintf (outfile, "###############\n");
-
-  while (c = getc (infile), !feof (infile)) {
-    if (c == NEWSTRING) {
-      /* If a string was being processed, terminate it. */
-      if (buf.index > 0)
-	terminate_string ();
-
-      /* Skip function or variable name. */
-      while (c != '\n')
-	c = getc (infile);
-      c = getc (infile);
-
-      /* Begin a new string. */
-      fprintf (outfile, "msgid  \"");
-      buf_print_safe ("msgstr \"");
-    }
-
-    if (c == '\n') {
-      /* Peek at next character. */
-      c = getc (infile);
-      ungetc (c, infile);
-
-      /* For add-on (i.e., non-preloaded) documentation, ignore the last
-	 carriage return of a string. */
-      if (!(package && c == NEWSTRING)) {
-	fprintf (outfile, LINEEND);
-	buf_print_safe (LINEEND);
-      }
-
-      /* If not end of string, continue it on the next line. */
-      if (c != NEWSTRING) {
-	fprintf (outfile, LINEBREAK);
-	buf_print_safe (LINEBREAK);
-      }
-    }
-    else {
-
-      /* If character is \ or ", precede it by a backslash. */
-      if (c == '\\' || c == '\"') {
-	putc ('\\', outfile);
-	buf_putc_safe ('\\');
-      }
-
-      putc (c, outfile);
-      buf_putc_safe (c);
-    }
-  }
-  terminate_string ();
-}
-
-
-/* initialize sets up the global variables.
-*/
-void initialize (void)
-{
-  if (buf_init (&buf, BUFSIZE) != 0)
-    clean_exit (EXIT_FAILURE);
-}
-
-
-/* clean_exit returns any resources and terminates the program.
-   An error message is printed if status is EXIT_FAILURE.
-*/
-void clean_exit (int status)
-{
-  if (buf.size > 0)
-    buf_free (&buf);
-  if (outfile)
-    fclose (outfile);
-  if (infile)
-    fclose (infile);
-
-  if (status == EXIT_FAILURE)
-    fprintf (stderr, "make-po abnormally terminated\n");
-  exit (status);
-}
-
-
-/* buf_putc_safe writes the character c on the global buffer buf,
-   checking to make sure that the operation was successful.
-*/
-void buf_putc_safe (int c)
-{
-  register int status;
-  
-  status = buf_putc (&buf, c);
-  if (status == EOF)
-    clean_exit (EXIT_FAILURE);
-}
-
-
-/* buf_putc_safe writes the string s on the global buffer buf,
-   checking to make sure that the operation was successful.
-*/
-void buf_print_safe (const char *s)
-{
-  register int status;
-
-  status = buf_print (&buf, s);
-  if (status < 0)
-    clean_exit (EXIT_FAILURE);
-}
-
-
-/* terminate_string terminates the current doc string and outputs the buffer.
-*/
-void terminate_string (void)
-  {
-    fprintf (outfile, ENDSTRING);
-
-    /* Make the "translation" different from the original string. */
-    buf_print_safe ("_X");
-
-    buf_print_safe (ENDSTRING);
-    fprintf (outfile, "%s", buf.buf);
-    buf_clear (&buf);
-  }
-
-
-/*********************************/
-/* buffer pseudo-class functions */
-/*********************************/
-
-/* buf_init initializes a buffer to the specified size.
-   It returns non-zero if the attempt fails.
-*/
-int buf_init (buffer_struct *buffer, size_t size)
-{
-  buffer->buf = malloc (size);
-  if (buffer->buf == NULL)
-    return 1;
-
-  buffer->size = size;
-  buf_clear (buffer);
-  return 0;
-}
-
-
-/* buf_free releases the memory allocated for the buffer.
-*/
-void buf_free (buffer_struct *buffer)
-{
-  free (buffer->buf);
-  buffer->size = 0;
-}
-
-
-/* buf_clear resets a buffer to an empty string.
-*/
-void buf_clear (buffer_struct *buffer)
-{
-  buffer->index = 0;
-  buffer->buf[0] = '\0';
-}
-
-
-/* buf_putc writes the character c on the buffer.
-   It returns the character written, or EOF for error.
-*/
-int buf_putc (buffer_struct *buffer, int c)
-{
-  if (buffer->index >= buffer->size)
-    return EOF;
-
-  buffer->buf[buffer->index++] = c;
-  return c;
-}
-
-
-/* buf_print writes the string s on the buffer.
-   It returns the number of characters written, or negative if an error occurred.
-*/
-int buf_print (buffer_struct *buffer, const char *s)
-{
-  register int len;
-
-  len = strlen (s);
-  if (buffer->index + len >= buffer->size)
-    return -1;
-
-  sprintf (&(buffer->buf[buffer->index]), s);
-  buffer->index += len;
-  return len;
-}
--- a/lwlib/ChangeLog	Thu Jan 28 04:02:14 2010 -0600
+++ b/lwlib/ChangeLog	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,8 @@
+2010-01-28  Jerry James  <james@xemacs.org>
+
+	* lwlib-internal.h: Add copyright and license boilerplate text
+	based on Ben's recollections.
+
 2009-12-09  Jerry James  <james@xemacs.org>
 
 	* lwlib-Xlw.c: Include needed Xmu headers instead of obsolete xmu.h.
--- a/lwlib/lwlib-internal.h	Thu Jan 28 04:02:14 2010 -0600
+++ b/lwlib/lwlib-internal.h	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,24 @@
+/* Implementation-specific definitions for the Lucid Widget Library.
+   Copyright (C) 1992 Lucid, Inc.
+   Copyright (C) 2000 Ben Wing.
+
+This file is part of the Lucid Widget Library.
+
+The Lucid Widget Library 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 1, or (at your option)
+any later version.
+
+The Lucid Widget Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+Boston, MA 02110-1301, USA.  */
+
 #ifndef INCLUDED_lwlib_internal_h_
 #define INCLUDED_lwlib_internal_h_
 
--- a/man/ChangeLog	Thu Jan 28 04:02:14 2010 -0600
+++ b/man/ChangeLog	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,10 @@
+2010-01-28  Jerry James  <loganjerry@gmail.com>
+
+	* external-widget.texi: Add copyright and license boilerplate text
+	based on Ben's recollections.
+	* lispref/internationalization.texi (Documentation String Extraction):
+	Removed, as it refers to the obsolete make-po program.
+
 2010-01-23  Aidan Kehoe  <kehoea@parhasard.net>
 
 	Generally: be careful to say fixnum, not integer, when talking
--- a/man/external-widget.texi	Thu Jan 28 04:02:14 2010 -0600
+++ b/man/external-widget.texi	Thu Jan 28 12:59:48 2010 -0700
@@ -7,6 +7,27 @@
 @direntry
 * External Widget: (external-widget).   External Client Widget.
 @end direntry
+
+This file describes the external client widget for XEmacs.
+
+Copyright @copyright{} 1993 Ben Wing.
+
+This file is part of XEmacs.
+
+XEmacs 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, or (at your option) any
+later version.
+
+XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+Boston, MA 02110-1301, USA.
 @end ifinfo
 
 @node Top, Using an External Client Widget,, (dir)
--- a/man/lispref/internationalization.texi	Thu Jan 28 04:02:14 2010 -0600
+++ b/man/lispref/internationalization.texi	Thu Jan 28 12:59:48 2010 -0700
@@ -35,7 +35,6 @@
 * Level 3 Primitives::
 * Dynamic Messaging::
 * Domain Specification::
-* Documentation String Extraction::
 @end menu
 
 @node Level 3 Basics
@@ -168,25 +167,6 @@
 @end example
 @end defun
 
-
-@node Documentation String Extraction
-@subsection Documentation String Extraction
-
-The utility @file{etc/make-po} scans the file @code{DOC} to extract
-documentation strings and creates a message file @code{doc.po}.  This file
-may then be inserted within @code{emacs.po}.
-
-Currently, @code{make-po} is hard-coded to read from @code{DOC} and write
-to @code{doc.po}.  In order to extract documentation strings from an add-on
-package, first run @code{make-docfile} on the package to produce the
-@code{DOC} file.  Then run @code{make-po -p} with the @code{-p} argument to
-indicate that we are extracting documentation for an add-on package.
-
-(The @code{-p} argument is a kludge to make up for a subtle difference
-between pre-loaded documentation and add-on documentation:  For add-on
-packages, the final carriage returns in the strings produced by
-@code{make-docfile} must be ignored.)
-
 @node I18N Level 4
 @section I18N Level 4
 
--- a/nt/ChangeLog	Thu Jan 28 04:02:14 2010 -0600
+++ b/nt/ChangeLog	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,9 @@
+2010-01-28  Jerry James  <james@xemacs.org>
+
+	* compface.mak: Add license and copyright boilerplate text based
+	on Ben's recollections.
+	* tiff.mak: Ditto.
+
 2009-12-21  Jerry James  <james@xemacs.org>
 
 	* xemacs.dsp: Remove references to OffiX files.
--- a/nt/compface.mak	Thu Jan 28 04:02:14 2010 -0600
+++ b/nt/compface.mak	Thu Jan 28 12:59:48 2010 -0700
@@ -1,7 +1,23 @@
-#
-# Compface Makefile for Microsoft NMAKE
-# Based on xpm.mak
-#
+##   Compface Makefile for Microsoft NMAKE
+##   Based on xpm.mak
+##   Copyright (C) 2001 Ben Wing.
+
+## This file is part of XEmacs.
+
+## XEmacs 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, or (at your option) any
+## later version.
+
+## XEmacs is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with XEmacs; see the file COPYING.  If not, write to
+## the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+## Boston, MA 02110-1301, USA.
 
 !if !defined(DEBUG_XEMACS)
 DEBUG_XEMACS=0
--- a/nt/tiff.mak	Thu Jan 28 04:02:14 2010 -0600
+++ b/nt/tiff.mak	Thu Jan 28 12:59:48 2010 -0700
@@ -1,6 +1,23 @@
-#
-# TIFF makefile for Microsoft nmake
-#
+##   TIFF makefile for Microsoft nmake
+##   Copyright (C) 2001 Ben Wing.
+
+## This file is part of XEmacs.
+
+## XEmacs 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, or (at your option) any
+## later version.
+
+## XEmacs is distributed in the hope that it will be useful, but WITHOUT
+## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+## for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with XEmacs; see the file COPYING.  If not, write to
+## the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor,
+## Boston, MA 02110-1301, USA.
+
 !if !defined(DEBUG_XEMACS)
 DEBUG_XEMACS=0
 !endif
--- a/src/ChangeLog	Thu Jan 28 04:02:14 2010 -0600
+++ b/src/ChangeLog	Thu Jan 28 12:59:48 2010 -0700
@@ -1,3 +1,8 @@
+2010-01-28  Jerry James  <james@xemacs.org>
+
+	* Makefile.in.in: Remove internationalization rules, since the
+	lib-src programs they invoke are now gone.
+
 2010-01-28  Ben Wing  <ben@xemacs.org>
 
 	* syswindows.h:
--- a/src/Makefile.in.in	Thu Jan 28 04:02:14 2010 -0600
+++ b/src/Makefile.in.in	Thu Jan 28 12:59:48 2010 -0700
@@ -368,10 +368,6 @@
 
 LIBES = $(lwlib_lib) $(malloclib) $(ld_libs_all) $(lib_gcc)
 
-#ifdef I18N3
-mo_file = $(LIB_SRC)/emacs.mo
-#endif
-
 #########################################################################
 ##                           Implicit rules                            ##
 #########################################################################
@@ -664,35 +660,6 @@
 ##                     Subsidiary dependency rules                     ##
 #########################################################################
 
-#ifdef I18N3
-
-# if defined(SPARC) && !defined(USG)
-   xgettext=		 /usr/openwin/bin/xgettext
-   xgettext_args=	 -o emacs -m_X messages
-   msgfmt=		 /usr/openwin/bin/msgfmt
-# else
-   xgettext=		 xgettext
-   xgettext_args=	 -s -d emacs -M_X messages
-   msgfmt=		 msgfmt
-#endif
-
-$(LIB_SRC)/emacs.po: $(LIB_SRC)/make-msgfile $(LIB_SRC)/make-po $(objs)
-	$(LIB_SRC)/make-msgfile -o $(LIB_SRC)/messages $(objs)
-	cd $(LIB_SRC) && $(xgettext) $(xgettext_args)
-	$(RM) $(LIB_SRC)/emacs.po
-	cd $(LIB_SRC) && $(LIB_SRC)/make-po -a $(LIB_SRC)/emacs.po DOC
-
-$(LIB_SRC)/emacs.mo: $(LIB_SRC)/emacs.po
-	cd $(LIB_SRC)/ && $(msgfmt) -o emacs.mo emacs.po
-
-$(LIB_SRC)/make-msgfile:
-	cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-msgfile
-
-$(LIB_SRC)/make-po:
-	cd $(LIB_SRC) && $(MAKE) $(RECURSIVE_MAKE_ARGS) make-po
-
-#endif /* I18N3 */
-
 TopLevelEmacsShell.o : $(SRC)/EmacsShell-sub.c config.h xintrinsicp.h EmacsShellP.h
 	$(CC) -c $(cflags) -DDEFINE_TOP_LEVEL_EMACS_SHELL $(SRC)/EmacsShell-sub.c
 	mv EmacsShell-sub.o TopLevelEmacsShell.o