[alt.sources] python source diffs for MSDOS

marka@dsinet (Mark Anacker) (04/04/91)

Sometime back, an interpreter called "Python" was posted to alt.sources.  It
makes a great UI prototyping language, and general quick-hack platform.  I've
got it mostly ported to DOS under Turbo C 2.0 - some functions like "link"
have no DOS equivalent.  If somebody would like to write a BGI graphics
module, I'd be happy to try it :-)

This is part one of the cdiff file.  unshar it and part 2, cat them together,
and run patch against a copy of the original source files.

You'll have to truncate some of the file name in the original distribution to
8 characters and the extension.  Most of the changes (apart from the shortened
header files name) are in the posixmod.c file.

#---------------------------------- cut here ----------------------------------
# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by Mark Anacker <marka@dsinet> on Wed Apr  3 14:21:14 1991
#
# This archive contains:
#	pythdos00	
#
# Existing files will not be overwritten.

LANG=""; export LANG
PATH=/bin:/usr/bin:$PATH; export PATH

if test -f pythdos00
then
	echo Ok to overwrite existing file pythdos00\?
	read answer
	case "$answer" in
	[yY]*)	echo Proceeding;;
	*)	echo Aborting; exit 1;;
	esac
	rm -f pythdos00
	if test -f pythdos00
	then
		echo Error: could not remove pythdos00, aborting
		exit 1
	fi
fi
echo x - pythdos00
cat >pythdos00 <<'@EOF'
*** dossrc/acceler.c	Wed Mar  6 10:04:44 1991
--- src/acceler.c	Wed Mar  6 10:04:44 1991
*** dossrc/allobjec.h	Wed Mar  6 10:05:30 1991
--- src/allobjects.h	Wed Mar  6 10:05:30 1991
***************
*** 32,48 ****
  #include "object.h"
  #include "objimpl.h"
  
! #include "intobjec.h"
! #include "floatobj.h"
! #include "stringob.h"
! #include "tupleobj.h"
! #include "listobje.h"
! #include "dictobje.h"
! #include "methodob.h"
! #include "moduleob.h"
! #include "funcobje.h"
! #include "classobj.h"
! #include "fileobje.h"
  
  #include "errors.h"
  #include "malloc.h"
--- 32,48 ----
  #include "object.h"
  #include "objimpl.h"
  
! #include "intobject.h"
! #include "floatobject.h"
! #include "stringobject.h"
! #include "tupleobject.h"
! #include "listobject.h"
! #include "dictobject.h"
! #include "methodobject.h"
! #include "moduleobject.h"
! #include "funcobject.h"
! #include "classobject.h"
! #include "fileobject.h"
  
  #include "errors.h"
  #include "malloc.h"
*** dossrc/assert.h	Wed Mar  6 10:06:08 1991
--- src/assert.h	Wed Mar  6 10:06:08 1991
*** dossrc/bitset.c	Wed Mar  6 10:05:22 1991
--- src/bitset.c	Wed Mar  6 10:05:22 1991
***************
*** 24,30 ****
  
  /* Bitset primitives used by the parser generator */
  
! #include "pgenhead.h"
  #include "bitset.h"
  
  bitset
--- 24,30 ----
  
  /* Bitset primitives used by the parser generator */
  
! #include "pgenheaders.h"
  #include "bitset.h"
  
  bitset
*** dossrc/bitset.h	Wed Mar  6 10:05:31 1991
--- src/bitset.h	Wed Mar  6 10:05:31 1991
*** dossrc/bltinmod.c	Wed Mar  6 10:04:30 1991
--- src/bltinmodule.c	Wed Mar  6 10:04:30 1991
***************
*** 29,41 ****
  #include "node.h"
  #include "graminit.h"
  #include "errcode.h"
! #include "sysmodul.h"
! #include "bltinmod.h"
  #include "import.h"
! #include "pythonru.h"
  #include "compile.h" /* For ceval.h */
  #include "ceval.h"
! #include "modsuppo.h"
  
  static object *
  builtin_abs(self, v)
--- 29,41 ----
  #include "node.h"
  #include "graminit.h"
  #include "errcode.h"
! #include "sysmodule.h"
! #include "bltinmodule.h"
  #include "import.h"
! #include "pythonrun.h"
  #include "compile.h" /* For ceval.h */
  #include "ceval.h"
! #include "modsupport.h"
  
  static object *
  builtin_abs(self, v)
*** dossrc/bltinmod.h	Wed Mar  6 10:06:08 1991
--- src/bltinmodule.h	Wed Mar  6 10:06:08 1991
*** dossrc/ceval.c	Wed Mar  6 10:04:18 1991
--- src/ceval.c	Wed Mar  6 10:04:18 1991
***************
*** 24,39 ****
  
  /* Execute compiled code */
  
! #include "allobjec.h"
  
  #include "import.h"
! #include "sysmodul.h"
  #include "compile.h"
! #include "frameobj.h"
  #include "ceval.h"
  #include "opcode.h"
! #include "bltinmod.h"
! #include "tracebac.h"
  
  #ifndef NDEBUG
  #define TRACE
--- 24,39 ----
  
  /* Execute compiled code */
  
! #include "allobjects.h"
  
  #include "import.h"
! #include "sysmodule.h"
  #include "compile.h"
! #include "frameobject.h"
  #include "ceval.h"
  #include "opcode.h"
! #include "bltinmodule.h"
! #include "traceback.h"
  
  #ifndef NDEBUG
  #define TRACE
*** dossrc/ceval.h	Wed Mar  6 10:05:45 1991
--- src/ceval.h	Wed Mar  6 10:05:45 1991
*** dossrc/cgen	Wed Mar  6 10:04:31 1991
--- src/cgen	Wed Mar  6 10:04:31 1991
*** dossrc/cgensupp.c	Wed Mar  6 10:04:39 1991
--- src/cgensupport.c	Wed Mar  6 10:04:39 1991
***************
*** 28,43 ****
  
  #include "PROTO.h"
  #include "object.h"
! #include "intobjec.h"
! #include "floatobj.h"
! #include "stringob.h"
! #include "tupleobj.h"
! #include "listobje.h"
! #include "methodob.h"
! #include "moduleob.h"
! #include "modsuppo.h"
  #include "import.h"
! #include "cgensupp.h"
  #include "errors.h"
  
  
--- 28,43 ----
  
  #include "PROTO.h"
  #include "object.h"
! #include "intobject.h"
! #include "floatobject.h"
! #include "stringobject.h"
! #include "tupleobject.h"
! #include "listobject.h"
! #include "methodobject.h"
! #include "moduleobject.h"
! #include "modsupport.h"
  #include "import.h"
! #include "cgensupport.h"
  #include "errors.h"
  
  
*** dossrc/cgensupp.h	Wed Mar  6 10:05:31 1991
--- src/cgensupport.h	Wed Mar  6 10:05:31 1991
*** dossrc/classobj.c	Wed Mar  6 10:04:45 1991
--- src/classobject.c	Wed Mar  6 10:04:45 1991
***************
*** 24,32 ****
  
  /* Class object implementation */
  
! #include "allobjec.h"
  
! #include "structme.h"
  
  typedef struct {
  	OB_HEAD
--- 24,32 ----
  
  /* Class object implementation */
  
! #include "allobjects.h"
  
! #include "structmember.h"
  
  typedef struct {
  	OB_HEAD
*** dossrc/classobj.h	Wed Mar  6 10:05:31 1991
--- src/classobject.h	Wed Mar  6 10:05:31 1991
*** dossrc/compile.c	Wed Mar  6 10:04:04 1991
--- src/compile.c	Wed Mar  6 10:04:04 1991
***************
*** 30,43 ****
     XXX Include function name in code (and module names?)
  */
  
! #include "allobjec.h"
  
  #include "node.h"
  #include "token.h"
  #include "graminit.h"
  #include "compile.h"
  #include "opcode.h"
! #include "structme.h"
  
  #include <ctype.h>
  
--- 30,43 ----
     XXX Include function name in code (and module names?)
  */
  
! #include "allobjects.h"
  
  #include "node.h"
  #include "token.h"
  #include "graminit.h"
  #include "compile.h"
  #include "opcode.h"
! #include "structmember.h"
  
  #include <ctype.h>
  
*** dossrc/compile.h	Wed Mar  6 10:05:31 1991
--- src/compile.h	Wed Mar  6 10:05:31 1991
*** dossrc/config.c	Wed Mar  6 10:04:59 1991
--- src/config.c	Wed Mar  6 10:04:59 1991
***************
*** 103,110 ****
  #endif
  
  #ifndef PYTHONPATH
! /* #define PYTHONPATH ".:/usr/local/lib/python" */
! #define PYTHONPATH ".:/tc/python/lib"
  #endif
  
  extern char *getenv();
--- 103,109 ----
  #endif
  
  #ifndef PYTHONPATH
! #define PYTHONPATH ".:/usr/local/lib/python"
  #endif
  
  extern char *getenv();
*** dossrc/configma.c	Wed Mar  6 10:05:22 1991
--- src/configmac.c	Wed Mar  6 10:05:22 1991
*** dossrc/cstubs	Wed Mar  6 10:04:07 1991
--- src/cstubs	Wed Mar  6 10:04:07 1991
*** dossrc/dictobje.c	Wed Mar  6 10:04:25 1991
--- src/dictobject.c	Wed Mar  6 10:04:25 1991
***************
*** 35,41 ****
  	h = 0; p = str; while (*p) h = (h<<5) - h + *p++;
  */
  
! #include "allobjec.h"
  
  
  /*
--- 35,41 ----
  	h = 0; p = str; while (*p) h = (h<<5) - h + *p++;
  */
  
! #include "allobjects.h"
  
  
  /*
*** dossrc/dictobje.h	Wed Mar  6 10:05:32 1991
--- src/dictobject.h	Wed Mar  6 10:05:32 1991
*** dossrc/errcode.h	Wed Mar  6 10:05:45 1991
--- src/errcode.h	Wed Mar  6 10:05:45 1991
*** dossrc/errors.c	Wed Mar  6 10:04:56 1991
--- src/errors.c	Wed Mar  6 10:04:56 1991
***************
*** 46,52 ****
       exception requires module-specific values for errno
     - there is no way to add a more situation-specific message to an
       error.
! 
    The new interface solves all these problems.  To return an error, a
    built-in function calls err_set(exception), err_setval(exception,
    value) or err_setstr(exception, string), and returns NULL.  These
--- 46,52 ----
       exception requires module-specific values for errno
     - there is no way to add a more situation-specific message to an
       error.
!   
    The new interface solves all these problems.  To return an error, a
    built-in function calls err_set(exception), err_setval(exception,
    value) or err_setstr(exception, string), and returns NULL.  These
***************
*** 55,61 ****
    err_setval() has to be changed.
  */
  
! #include "allobjec.h"
  
  #include <errno.h>
  #ifndef errno
--- 55,61 ----
    err_setval() has to be changed.
  */
  
! #include "allobjects.h"
  
  #include <errno.h>
  #ifndef errno
***************
*** 79,85 ****
  	XDECREF(last_exception);
  	XINCREF(exception);
  	last_exception = exception;
! 
  	XDECREF(last_exc_val);
  	XINCREF(value);
  	last_exc_val = value;
--- 79,85 ----
  	XDECREF(last_exception);
  	XINCREF(exception);
  	last_exception = exception;
! 	
  	XDECREF(last_exc_val);
  	XINCREF(value);
  	last_exc_val = value;
*** dossrc/errors.h	Wed Mar  6 10:05:32 1991
--- src/errors.h	Wed Mar  6 10:05:32 1991
*** dossrc/fgetsint.c	Wed Mar  6 10:05:22 1991
--- src/fgetsintr.c	Wed Mar  6 10:05:22 1991
***************
*** 4,10 ****
  
                          All Rights Reserved
  
! Permission to use, copy, modify, and distribute this software and its
  documentation for any purpose and without fee is hereby granted, 
  provided that the above copyright notice appear in all copies and that
  both that copyright notice and this permission notice appear in 
--- 4,10 ----
  
                          All Rights Reserved
  
! Permission to use, copy, modify, and distribute this software and its 
  documentation for any purpose and without fee is hereby granted, 
  provided that the above copyright notice appear in all copies and that
  both that copyright notice and this permission notice appear in 
***************
*** 28,41 ****
  /* XXX This uses longjmp() from a signal out of fgets().
     Should use read() instead?! */
  
! #include "pgenhead.h"
  
  #include <signal.h>
  #include <setjmp.h>
  
  #include "errcode.h"
  #include "sigtype.h"
! #include "fgetsint.h"
  
  #ifndef AMOEBA
  #define sig_block()	/*empty*/
--- 28,41 ----
  /* XXX This uses longjmp() from a signal out of fgets().
     Should use read() instead?! */
  
! #include "pgenheaders.h"
  
  #include <signal.h>
  #include <setjmp.h>
  
  #include "errcode.h"
  #include "sigtype.h"
! #include "fgetsintr.h"
  
  #ifndef AMOEBA
  #define sig_block()	/*empty*/
*** dossrc/fgetsint.h	Wed Mar  6 10:06:08 1991
--- src/fgetsintr.h	Wed Mar  6 10:06:08 1991
*** dossrc/fileobje.c	Wed Mar  6 10:04:48 1991
--- src/fileobject.c	Wed Mar  6 10:04:48 1991
***************
*** 30,36 ****
     It should also cooperate with posix to support popen(), which should
     share most code but have a special close function. */
  
! #include "allobjec.h"
  
  #include "errno.h"
  #ifndef errno
--- 30,36 ----
     It should also cooperate with posix to support popen(), which should
     share most code but have a special close function. */
  
! #include "allobjects.h"
  
  #include "errno.h"
  #ifndef errno
*** dossrc/fileobje.h	Wed Mar  6 10:05:45 1991
--- src/fileobject.h	Wed Mar  6 10:05:45 1991
*** dossrc/firstset.c	Wed Mar  6 10:05:12 1991
--- src/firstsets.c	Wed Mar  6 10:05:12 1991
***************
*** 24,30 ****
  
  /* Computation of FIRST stets */
  
! #include "pgenhead.h"
  #include "grammar.h"
  #include "token.h"
  
--- 24,30 ----
  
  /* Computation of FIRST stets */
  
! #include "pgenheaders.h"
  #include "grammar.h"
  #include "token.h"
  
***************
*** 39,45 ****
  {
  	int i;
  	dfa *d;
! 
  	printf("Adding FIRST sets ...\n");
  	for (i = 0; i < g->g_ndfas; i++) {
  		d = &g->g_dfa[i];
--- 39,45 ----
  {
  	int i;
  	dfa *d;
! 	
  	printf("Adding FIRST sets ...\n");
  	for (i = 0; i < g->g_ndfas; i++) {
  		d = &g->g_dfa[i];
*** dossrc/floatobj.c	Wed Mar  6 10:04:48 1991
--- src/floatobject.c	Wed Mar  6 10:04:48 1991
***************
*** 27,33 ****
  /* XXX There should be overflow checks here, but it's hard to check
     for any kind of float exception without losing portability. */
  
! #include "allobjec.h"
  
  #include <errno.h>
  #ifndef errno
--- 27,33 ----
  /* XXX There should be overflow checks here, but it's hard to check
     for any kind of float exception without losing portability. */
  
! #include "allobjects.h"
  
  #include <errno.h>
  #ifndef errno
*** dossrc/floatobj.h	Wed Mar  6 10:05:46 1991
--- src/floatobject.h	Wed Mar  6 10:05:46 1991
*** dossrc/fmod.c	Wed Mar  6 10:05:46 1991
--- src/fmod.c	Wed Mar  6 10:05:46 1991
*** dossrc/frameobj.c	Wed Mar  6 10:04:59 1991
--- src/frameobject.c	Wed Mar  6 10:04:59 1991
***************
*** 24,35 ****
  
  /* Frame object implementation */
  
! #include "allobjec.h"
  
  #include "compile.h"
! #include "frameobj.h"
  #include "opcode.h"
! #include "structme.h"
  
  #define OFF(x) offsetof(frameobject, x)
  
--- 24,35 ----
  
  /* Frame object implementation */
  
! #include "allobjects.h"
  
  #include "compile.h"
! #include "frameobject.h"
  #include "opcode.h"
! #include "structmember.h"
  
  #define OFF(x) offsetof(frameobject, x)
  
*** dossrc/frameobj.h	Wed Mar  6 10:05:13 1991
--- src/frameobject.h	Wed Mar  6 10:05:13 1991
*** dossrc/funcobje.c	Wed Mar  6 10:05:14 1991
--- src/funcobject.c	Wed Mar  6 10:05:14 1991
***************
*** 24,32 ****
  
  /* Function object implementation */
  
! #include "allobjec.h"
  
! #include "structme.h"
  
  typedef struct {
  	OB_HEAD
--- 24,32 ----
  
  /* Function object implementation */
  
! #include "allobjects.h"
  
! #include "structmember.h"
  
  typedef struct {
  	OB_HEAD
*** dossrc/funcobje.h	Wed Mar  6 10:05:46 1991
--- src/funcobject.h	Wed Mar  6 10:05:46 1991
*** dossrc/getcwd.c	Wed Mar  6 10:05:23 1991
--- src/getcwd.c	Wed Mar  6 10:05:23 1991
*** dossrc/graminit.c	Wed Mar  6 10:04:05 1991
--- src/graminit.c	Wed Mar  6 10:04:05 1991
***************
*** 22,28 ****
  
  ******************************************************************/
  
! #include "pgenhead.h"
  #include "grammar.h"
  static arc arcs_0_0[3] = {
  	{2, 1},
--- 22,28 ----
  
  ******************************************************************/
  
! #include "pgenheaders.h"
  #include "grammar.h"
  static arc arcs_0_0[3] = {
  	{2, 1},
*** dossrc/graminit.h	Wed Mar  6 10:05:23 1991
--- src/graminit.h	Wed Mar  6 10:05:23 1991
*** dossrc/grammar	Wed Apr  3 13:53:43 1991
--- src/grammar	Wed Apr  3 13:53:43 1991
***************
*** 1,72 ****
- # Grammar for Python, version 4
- 
- # Changes compared to version 3:
- #	Removed 'dir' statement.
- #	Function call argument is a testlist instead of exprlist.
- 
- # Changes compared to version 2:
- #	The syntax of Boolean operations is changed to use more
- #	conventional priorities: or < and < not.
- 
- # Changes compared to version 1:
- #	modules and scripts are unified;
- #	'quit' is gone (use ^D);
- #	empty_stmt is gone, replaced by explicit NEWLINE where appropriate;
- #	'import' and 'def' aren't special any more;
- #	added 'from' NAME option on import clause, and '*' to import all;
- #	added class definition.
- 
- # Start symbols for the grammar:
- #	single_input is a single interactive statement;
- #	file_input is a module or sequence of commands read from an input file;
- #	expr_input is the input for the input() function;
- #	eval_input is the input for the eval() function.
- 
- # NB: compound_stmt in single_input is followed by extra NEWLINE!
- single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE
- file_input: (NEWLINE | stmt)* ENDMARKER
- expr_input: testlist NEWLINE
- eval_input: testlist ENDMARKER
- 
- funcdef: 'def' NAME parameters ':' suite
- parameters: '(' [fplist] ')'
- fplist: fpdef (',' fpdef)*
- fpdef: NAME | '(' fplist ')'
- 
- stmt: simple_stmt | compound_stmt
- simple_stmt: expr_stmt | print_stmt  | pass_stmt | del_stmt | flow_stmt | import_stmt
- expr_stmt: (exprlist '=')* exprlist NEWLINE
- # For assignments, additional restrictions enforced by the interpreter
- print_stmt: 'print' (test ',')* [test] NEWLINE
- del_stmt: 'del' exprlist NEWLINE
- pass_stmt: 'pass' NEWLINE
- flow_stmt: break_stmt | return_stmt | raise_stmt
- break_stmt: 'break' NEWLINE
- return_stmt: 'return' [testlist] NEWLINE
- raise_stmt: 'raise' expr [',' expr] NEWLINE
- import_stmt: 'import' NAME (',' NAME)* NEWLINE | 'from' NAME 'import' ('*' | NAME (',' NAME)*) NEWLINE
- compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | funcdef | classdef
- if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
- while_stmt: 'while' test ':' suite ['else' ':' suite]
- for_stmt: 'for' exprlist 'in' exprlist ':' suite ['else' ':' suite]
- try_stmt: 'try' ':' suite (except_clause ':' suite)* ['finally' ':' suite]
- except_clause: 'except' [expr [',' expr]]
- suite: simple_stmt | NEWLINE INDENT NEWLINE* (stmt NEWLINE*)+ DEDENT
- 
- test: and_test ('or' and_test)*
- and_test: not_test ('and' not_test)*
- not_test: 'not' not_test | comparison
- comparison: expr (comp_op expr)*
- comp_op: '<'|'>'|'='|'>' '='|'<' '='|'<' '>'|'in'|'not' 'in'|'is'|'is' 'not'
- expr: term (('+'|'-') term)*
- term: factor (('*'|'/'|'%') factor)*
- factor: ('+'|'-') factor | atom trailer*
- atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' '}' | '`' testlist '`' | NAME | NUMBER | STRING
- trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
- subscript: expr | [expr] ':' [expr]
- exprlist: expr (',' expr)* [',']
- testlist: test (',' test)* [',']
- 
- classdef: 'class' NAME parameters ['=' baselist] ':' suite
- baselist: atom arguments (',' atom arguments)*
- arguments: '(' [testlist] ')'
--- 0 ----
*** dossrc/grammar.c	Wed Mar  6 10:04:49 1991
--- src/grammar.c	Wed Mar  6 10:04:49 1991
***************
*** 24,30 ****
  
  /* Grammar implementation */
  
! #include "pgenhead.h"
  
  #include <ctype.h>
  
--- 24,30 ----
  
  /* Grammar implementation */
  
! #include "pgenheaders.h"
  
  #include <ctype.h>
  
*** dossrc/grammar.h	Wed Mar  6 10:05:14 1991
--- src/grammar.h	Wed Mar  6 10:05:14 1991
*** dossrc/grammar1.c	Wed Mar  6 10:05:32 1991
--- src/grammar1.c	Wed Mar  6 10:05:32 1991
***************
*** 24,30 ****
  
  /* Grammar subroutines needed by parser */
  
! #include "pgenhead.h"
  #include "assert.h"
  #include "grammar.h"
  #include "token.h"
--- 24,30 ----
  
  /* Grammar subroutines needed by parser */
  
! #include "pgenheaders.h"
  #include "assert.h"
  #include "grammar.h"
  #include "token.h"
*** dossrc/import.c	Wed Mar  6 10:04:49 1991
--- src/import.c	Wed Mar  6 10:04:49 1991
***************
*** 24,38 ****
  
  /* Module definition and import implementation */
  
! #include "allobjec.h"
  
  #include "node.h"
  #include "token.h"
  #include "graminit.h"
  #include "import.h"
  #include "errcode.h"
! #include "sysmodul.h"
! #include "pythonru.h"
  
  /* Define pathname separator used in file names */
  
--- 24,38 ----
  
  /* Module definition and import implementation */
  
! #include "allobjects.h"
  
  #include "node.h"
  #include "token.h"
  #include "graminit.h"
  #include "import.h"
  #include "errcode.h"
! #include "sysmodule.h"
! #include "pythonrun.h"
  
  /* Define pathname separator used in file names */
  
*** dossrc/import.h	Wed Mar  6 10:05:47 1991
--- src/import.h	Wed Mar  6 10:05:47 1991
*** dossrc/intobjec.c	Wed Mar  6 10:04:45 1991
--- src/intobject.c	Wed Mar  6 10:04:45 1991
***************
*** 24,30 ****
  
  /* Integer object implementation */
  
! #include "allobjec.h"
  
  /* Standard Booleans */
  
--- 24,30 ----
  
  /* Integer object implementation */
  
! #include "allobjects.h"
  
  /* Standard Booleans */
  
*** dossrc/intobjec.h	Wed Mar  6 10:05:15 1991
--- src/intobject.h	Wed Mar  6 10:05:15 1991
*** dossrc/intrchec.c	Wed Mar  6 10:05:15 1991
--- src/intrcheck.c	Wed Mar  6 10:05:15 1991
*** dossrc/libobj.cmd	Wed Apr  3 13:53:57 1991
--- src/libobj.cmd	Wed Apr  3 13:53:57 1991
***************
*** 1,40 ****
- +acceler.obj &
- +bltinmod.obj & 
- +ceval.obj & 
- +classobj.obj &
- +compile.obj & 
- +dictobje.obj &
- +errors.obj &
- +fgetsint.obj &
- +fileobje.obj &
- +floatobj.obj &
- +frameobj.obj &
- +funcobje.obj &
- +graminit.obj &
- +grammar1.obj &
- +import.obj &
- +intobjec.obj & 
- +intrchec.obj &
- +listnode.obj &
- +listobje.obj &
- +mathmodu.obj &
- +methodob.obj &
- +modsuppo.obj &
- +moduleob.obj &
- +node.obj &
- +object.obj & 
- +parser.obj &
- +parsetok.obj &
- +posixmod.obj &
- +regexp.obj &
- +regexpmo.obj &
- +strdup.obj &
- +stringob.obj &
- +structme.obj &
- +sysmodul.obj &
- +timemodu.obj &
- +tokenize.obj &
- +tracebac.obj &
- +tupleobj.obj &
- +typeobje.obj
- 
--- 0 ----
*** dossrc/listnode.c	Wed Mar  6 10:05:24 1991
--- src/listnode.c	Wed Mar  6 10:05:24 1991
***************
*** 24,30 ****
  
  /* List a node on a file */
  
! #include "pgenhead.h"
  #include "token.h"
  #include "node.h"
  
--- 24,30 ----
  
  /* List a node on a file */
  
! #include "pgenheaders.h"
  #include "token.h"
  #include "node.h"
  
*** dossrc/listobje.c	Wed Mar  6 10:04:35 1991
--- src/listobject.c	Wed Mar  6 10:04:35 1991
***************
*** 24,30 ****
  
  /* List object implementation */
  
! #include "allobjec.h"
  
  object *
  newlistobject(size)
--- 24,30 ----
  
  /* List object implementation */
  
! #include "allobjects.h"
  
  object *
  newlistobject(size)
*** dossrc/listobje.h	Wed Mar  6 10:05:24 1991
--- src/listobject.h	Wed Mar  6 10:05:24 1991
*** dossrc/macmodul.c	Wed Mar  6 10:04:50 1991
--- src/macmodule.c	Wed Mar  6 10:04:50 1991
*** dossrc/Makefile	Wed Mar  6 11:04:37 1991
--- src/Makefile	Wed Mar  6 11:04:37 1991
***************
*** 1,3 ****
--- 1,46 ----
+ # /***********************************************************
+ # Copyright 1991 by Stichting Mathematisch Centrum, Amsterdam, The
+ # Netherlands.
+ # 
+ #                         All Rights Reserved
+ # 
+ # Permission to use, copy, modify, and distribute this software and its 
+ # documentation for any purpose and without fee is hereby granted, 
+ # provided that the above copyright notice appear in all copies and that
+ # both that copyright notice and this permission notice appear in 
+ # supporting documentation, and that the names of Stichting Mathematisch
+ # Centrum or CWI not be used in advertising or publicity pertaining to
+ # distribution of the software without specific, written prior permission.
+ # 
+ # STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+ # THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ # FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+ # FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ # 
+ # ******************************************************************/
+ 
+ # Makefile for Python
+ # ===================
+ #
+ # If you are in a hurry, you can just edit this Makefile to choose the
+ # correct settings for SYSV and RANLIB below, and type "make" in this
+ # directory.  If you are using a recent version of SunOS (or Ultrix?)
+ # you don't even have to edit: the Makefile comes pre-configured for
+ # such systems with all configurable options turned off, building the
+ # minimal portable version of the Python interpreter.
+ #
+ # If have more time, read the section on configurable options below.
+ # It may still be wise to begin building the minimal portable Python,
+ # to see if it works at all, and select options later.  You don't have
+ # to rebuild all objects when you turn on options; all dependencies
+ # are concentrated in the file "config.c" which is rebuilt whenever
+ # the Makefile changes.  (Except if you turn on the GNU Readline option
+ # you may have to toss out the tokenizer.o object.)
+ 
+ 
  # Operating System Defines (ALWAYS READ THIS)
  # ===========================================
  
***************
*** 10,31 ****
  # Choose one of the following two lines depending on whether your system
  # requires the use of 'ranlib' after creating a library, or not.
  
! #RANLIB =	true	# For System V
  #RANLIB =	ranlib	# For BSD
  
  # If your system doesn't have symbolic links, uncomment the following
  # line.
  
! NOSYMLINKDEF=	-DNO_LSTAT
  
  # Installation Options
  # ====================
  
  # You may want to change PYTHONPATH to reflect where you install the
  # Python module library.
  
! PYTHONPATH= .:/tc/python/lib
  
  # For "Pure" BSD Systems
  # ======================
  #
--- 53,76 ----
  # Choose one of the following two lines depending on whether your system
  # requires the use of 'ranlib' after creating a library, or not.
  
! RANLIB =	true	# For System V
  #RANLIB =	ranlib	# For BSD
  
  # If your system doesn't have symbolic links, uncomment the following
  # line.
  
! #NOSYMLINKDEF=	-DNO_LSTAT
  
+ 
  # Installation Options
  # ====================
  
  # You may want to change PYTHONPATH to reflect where you install the
  # Python module library.
  
! PYTHONPATH=	.:/usr/local/lib/python
  
+ 
  # For "Pure" BSD Systems
  # ======================
  #
***************
*** 67,72 ****
--- 112,118 ----
  
  #SIGTYPEDEF=	-DSIGTYPE=int
  
+ 
  # Further porting hints
  # =====================
  #
***************
*** 93,147 ****
  # always leave all options off and build a minimal portable version of
  # Python.)
  
- # Major Definitions
- # =================
  
! CC=	/tc/tcc
  
! CFLAGS= -O -G -Z -DMSDOS -ml
  
- .c.obj:
- 	$(CC) -c $(CFLAGS) $*.c 
  
! STANDARD_OBJ=	acceler.obj bltinmod.obj ceval.obj classobj.obj \
! 		compile.obj dictobje.obj errors.obj fgetsint.obj \
! 		fileobje.obj floatobj.obj $(FMOD_OBJ) frameobj.obj \
! 		funcobje.obj $(GETCWD_OBJ) \
! 		graminit.obj grammar1.obj import.obj \
! 		intobjec.obj intrchec.obj listnode.obj listobje.obj \
! 		mathmodu.obj methodob.obj modsuppo.obj \
! 		moduleob.obj node.obj object.obj parser.obj \
! 		parsetok.obj posixmod.obj regexp.obj regexpmo.obj \
! 		strdup.obj $(STRERROR_OBJ) \
! 		stringob.obj $(STRTOL_OBJ) structme.obj \
! 		sysmodul.obj timemodu.obj tokenize.obj tracebac.obj \
! 		tupleobj.obj typeobje.obj
  
! STANDARD_SRC=	acceler.c  bltinmod.c ceval.c classobj.c \
! 		compile.c  dictobje.c errors.c fgetsint.c \
! 		fileobje.c floatobj.c $(FMOD_SRC) frameobj.c \
! 		funcobje.c $(GETCWD_SRC) \
  		graminit.c grammar1.c import.c \
! 		intobjec.c intrchec.c listnode.c listobje.c \
! 		mathmodu.c methodob.c modsupport.c \
! 		moduleob.c node.c object.c parser.c \
! 		parsetok.c posixmod.c regexp.c regexpmo.c \
  		strdup.c $(STRERROR_SRC) \
! 		stringob.c $(STRTOL_SRC) structme.c \
! 		sysmodul.c timemodu.c tokenize.c tracebac.c \
! 		tupleobj.c typeobje.c
  
  CONFIGDEFS=	$(STDW_USE) $(AM_USE) $(AUDIO_USE) $(GL_USE) $(PANEL_USE) \
! 		-DPYTHONPATH="$(PYTHONPATH)"
  
  CONFIGINCLS=	$(STDW_INCL)
  
! LIBDEPS=	libpytho.lib $(STDW_LIBDEPS) $(AM_LIBDEPS) \
  		$(GL_LIBDEPS) $(PANEL_LIBSDEP) $(RL_LIBDEPS)
  
  # NB: the ordering of items in LIBS is significant!
! LIBS=		libpytho.lib $(STDW_LIBS) $(AM_LIBS) \
! 		$(PANEL_LIBS) $(GL_LIBS) $(RL_LIBS) mathl.lib
  
  LIBOBJECTS=	$(STANDARD_OBJ) $(STDW_OBJ) $(AM_OBJ) $(AUDIO_OBJ) \
  		$(GL_OBJ) $(PANEL_OBJ)
--- 139,352 ----
  # always leave all options off and build a minimal portable version of
  # Python.)
  
  
! # BSD Time Option
! # ===============
! #
! # This option does not add a new module but adds two functions to
! # an existing module.
! #
! # It implements time.millisleep() and time.millitimer()
! # using the BSD system calls select() and gettimeofday().
! #
! # Uncomment the following line to select this option.
  
! #BSDTIMEDEF=	-DBSD_TIME
  
  
! # GNU Readline Option
! # ===================
! #
! # If you have the sources of the GNU Readline library you can have
! # full interactive command line editing and history in Python.
! # The GNU Readline library is distributed with the BASH shell
! # (I only know of version 1.05).  You must build the GNU Readline
! # library and the alloca routine it needs in their own source
! # directories (which are subdirectories of the basg source directory),
! # and plant a pointer to the BASH source directory in this Makefile.
! #
! # Uncomment and edit the following block to use the GNU Readline option.
! # - Edit the definition of BASHDIR to point to the bash source tree.
! # You may have to fix the definition of LIBTERMCAP; leave the LIBALLOCA
! # definition commented if alloca() is in your C library.
  
! #BASHDIR=	../../bash-1.05
! #LIBREADLINE=	$(BASHDIR)/readline/libreadline.a
! #LIBALLOCA=	$(BASHDIR)/alloc-files/alloca.o
! #LIBTERMCAP=	-ltermcap
! #RL_USE =	-DUSE_READLINE
! #RL_LIBS=	$(LIBREADLINE) $(LIBALLOCA) $(LIBTERMCAP)
! #RL_LIBDEPS=	$(LIBREADLINE) $(LIBALLOCA)
! 
! 
! # STDWIN Option
! # =============
! #
! # If you have the sources of STDWIN (by the same author) you can
! # configure Python to incorporate the built-in module 'stdwin'.
! # This requires a fairly recent version of STDWIN (dated late 1990).
! #
! # Uncomment and edit the following block to use the STDWIN option.
! # - Edit the STDWINDIR defition to reflect the top of the STDWIN source
! #   tree.
! # - Edit the ARCH definition to reflect your system's architecture
! #   (usually the program 'arch' or 'machine' returns this).
! # You may have to edit the LIBX11 defition to reflect the location of
! # the X11 runtime library if it is non-standard.
! 
! STDWINDIR=	../../stdwin
! ARCH=		68000
! LIBSTDWIN=	$(STDWINDIR)/Build/$(ARCH)/x11/lib/lib.a
! LIBX11 =	-lX11
! STDW_INCL=	-I$(STDWINDIR)/H
! STDW_USE=	-DUSE_STDWIN
! STDW_LIBS=	$(LIBSTDWIN) $(LIBX11)
! STDW_LIBDEPS=	$(LIBSTDWIN)
! STDW_SRC=	stdwinmodule.c
! STDW_OBJ=	stdwinmodule.o
! 
! 
! # Amoeba Option
! # =============
! #
! # If you have the Amoeba 4.0 distribution (Beta or otherwise) you can
! # configure Python to incorporate the built-in module 'amoeba'.
! # (Python can also be built for native Amoeba, but it requires more
! # work and thought.  Contact the author.)
! #
! # Uncomment and edit the following block to use the Amoeba option.
! # - Edit the AMOEBADIR defition to reflect the top of the Amoeba source
! #   tree.
! # - Edit the AM_CONF definition to reflect the machine/operating system
! #   configuration needed by Amoeba (this is the name of a subdirectory
! #   of $(AMOEBADIR)/conf/unix, e.g., vax.ultrix).
! 
! #AMOEBADIR=	/usr/amoeba
! #AM_CONF=	mipseb.irix
! #LIBAMUNIX=	$(AMOEBADIR)/conf/unix/$(AM_CONF)/lib/amunix/libamunix.a
! #AM_INCL=	-I$(AMOEBADIR)/src/h
! #AM_USE =	-DUSE_AMOEBA
! #AM_LIBDEPS=	$(LIBAMUNIX)
! #AM_LIBS=	$(LIBAMUNIX)
! #AM_SRC =	amoebamodule.c sc_interpr.c sc_errors.c
! #AM_OBJ =	amoebamodule.o sc_interpr.o sc_errors.o
! 
! 
! # Silicon Graphics IRIS Options
! # =============================
! #
! # The following three options are only relevant if you are using a
! # Silicon Graphics IRIS machine.  These have been tested with IRIX 3.3.1
! # on a 4D/25.
! 
! 
! # GL Option
! # =========
! #
! # This option incorporates the built-in module 'gl', which provides a
! # complete interface to the Silicon Graphics GL library.  It adds
! # about 70K to the Python text size and about 260K to the unstripped
! # binary size.
! #
! # Note: the file 'glmodule.c' is created by a Python script.  If you
! # lost the file and have no working Python interpreter, turn off the GL
! # and Panel options, rebuild the Python interpreter, use it to create
! # glmodule.c, and then turn the options back on.
! #
! # Uncomment the following block to use the GL option.
! 
! #GL_USE =	-DUSE_GL
! #GL_LIBDEPS=	
! #GL_LIBS=	-lgl_s
! #GL_SRC =	glmodule.c cgensupport.c
! #GL_OBJ =	glmodule.o cgensupport.o
! 
! 
! # Panel Option
! # ============
! #
! # If you have source to the NASA Ames Panel Library, you can configure
! # Python to incorporate the built-in module 'pnl', which is used byu
! # the standard module 'panel' to provide an interface to most features
! # of the Panel Library.  This option requires that you also turn on the
! # GL option.  It adds about 100K to the Python text size and about 160K
! # to the unstripped binary size.
! #
! # Uncomment and edit the following block to use the Panel option.
! # - Edit the PANELDIR definition to point to the top-level directory
! #   of the Panel distribution tree.
! 
! #PANELDIR=	/usr/people/guido/src/pl
! #PANELLIBDIR=	$(PANELDIR)/library
! #LIBPANEL=	$(PANELLIBDIR)/lib/libpanel.a
! #PANEL_USE=	-DUSE_PANEL
! #PANEL_INCL=	-I$(PANELLIBDIR)/include
! #PANEL_LIBDEPS=	$(LIBPANEL)
! #PANEL_LIBS=	$(LIBPANEL)
! #PANEL_SRC=	panelmodule.c
! #PANEL_OBJ=	panelmodule.o
! 
! 
! # Audio Option
! # ============
! #
! # This option lets you play with /dev/audio on the IRIS 4D/25.
! # It incorporates the built-in module 'audio'.
! # Warning: using the asynchronous I/O facilities of this module can
! # create a second 'thread', which looks in the listings of 'ps' like a
! # forked child.  However, it shares its address space with the parent.
! #
! # Uncomment the following block to use the Audio option.
! 
! #AUDIO_USE=	-DUSE_AUDIO
! #AUDIO_SRC=	audiomodule.c asa.c
! #AUDIO_OBJ=	audiomodule.o asa.o
! 
! 
! # Major Definitions
! # =================
! 
! CC=	/bin/cc
! 
! STANDARD_OBJ=	acceler.o bltinmodule.o ceval.o classobject.o \
! 		compile.o dictobject.o errors.o fgetsintr.o \
! 		fileobject.o floatobject.o $(FMOD_OBJ) frameobject.o \
! 		funcobject.o $(GETCWD_OBJ) \
! 		graminit.o grammar1.o import.o \
! 		intobject.o intrcheck.o listnode.o listobject.o \
! 		mathmodule.o methodobject.o modsupport.o \
! 		moduleobject.o node.o object.o parser.o \
! 		parsetok.o posixmodule.o regexp.o regexpmodule.o \
! 		strdup.o $(STRERROR_OBJ) \
! 		stringobject.o $(STRTOL_OBJ) structmember.o \
! 		sysmodule.o timemodule.o tokenizer.o traceback.o \
! 		tupleobject.o typeobject.o
! 
! STANDARD_SRC=	acceler.c bltinmodule.c ceval.c classobject.c \
! 		compile.c dictobject.c errors.c fgetsintr.c \
! 		fileobject.c floatobject.c $(FMOD_SRC) frameobject.c \
! 		funcobject.c $(GETCWD_SRC) \
  		graminit.c grammar1.c import.c \
! 		intobject.c intrcheck.c listnode.c listobject.c \
! 		mathmodule.c methodobject.c modsupport.c \
! 		moduleobject.c node.c object.c parser.c \
! 		parsetok.c posixmodule.c regexp.c regexpmodule.c \
  		strdup.c $(STRERROR_SRC) \
! 		stringobject.c $(STRTOL_SRC) structmember.c \
! 		sysmodule.c timemodule.c tokenizer.c traceback.c \
! 		tupleobject.c typeobject.c
  
  CONFIGDEFS=	$(STDW_USE) $(AM_USE) $(AUDIO_USE) $(GL_USE) $(PANEL_USE) \
! 		'-DPYTHONPATH="$(PYTHONPATH)"'
  
  CONFIGINCLS=	$(STDW_INCL)
  
! LIBDEPS=	libpython.a $(STDW_LIBDEPS) $(AM_LIBDEPS) \
  		$(GL_LIBDEPS) $(PANEL_LIBSDEP) $(RL_LIBDEPS)
  
  # NB: the ordering of items in LIBS is significant!
! LIBS=		libpython.a $(STDW_LIBS) $(AM_LIBS) \
! 		$(PANEL_LIBS) $(GL_LIBS) $(RL_LIBS) -lm
  
  LIBOBJECTS=	$(STANDARD_OBJ) $(STDW_OBJ) $(AM_OBJ) $(AUDIO_OBJ) \
  		$(GL_OBJ) $(PANEL_OBJ)
***************
*** 149,163 ****
  LIBSOURCES=	$(STANDARD_SRC) $(STDW_SRC) $(AM_SRC) $(AUDIO_SRC) \
  		$(GL_SRC) $(PANEL_SRC)
  
! OBJECTS=	python.obj config.obj
  
! SOURCES=	$(LIBSOURCES) python.c config.c
  
! GENOBJECTS=	acceler.obj fgetsintr.obj grammar1.obj \
! 		intrcheck.obj listnode.obj node.obj parser.obj \
! 		parsetok.obj strdup.obj tokenizer.obj bitset.obj \
! 		firstsets.obj grammar.obj metagrammar.obj pgen.obj \
! 		pgenmain.obj printgrammar.obj
  
  GENSOURCES=	acceler.c fgetsintr.c grammar1.c \
  		intrcheck.c listnode.c node.c parser.c \
--- 354,368 ----
  LIBSOURCES=	$(STANDARD_SRC) $(STDW_SRC) $(AM_SRC) $(AUDIO_SRC) \
  		$(GL_SRC) $(PANEL_SRC)
  
! OBJECTS=	pythonmain.o config.o
  
! SOURCES=	$(LIBSOURCES) pythonmain.c config.c
  
! GENOBJECTS=	acceler.o fgetsintr.o grammar1.o \
! 		intrcheck.o listnode.o node.o parser.o \
! 		parsetok.o strdup.o tokenizer.o bitset.o \
! 		firstsets.o grammar.o metagrammar.o pgen.o \
! 		pgenmain.o printgrammar.o
  
  GENSOURCES=	acceler.c fgetsintr.c grammar1.c \
  		intrcheck.c listnode.c node.c parser.c \
***************
*** 165,178 ****
  		firstsets.c grammar.c metagrammar.c pgen.c \
  		pgenmain.c printgrammar.c
  
  # Main Targets
  # ============
  
! python.exe:	$(OBJECTS) $(LIBDEPS)
! 		$(CC) $(CFLAGS) $(OBJECTS) $(LIBS) 
  
! libpytho.lib:	$(LIBOBJECTS)
! 		\tc\tlib libpytho.lib @libobj.cmd 
  
  python_gen:	$(GENOBJECTS) $(RL_LIBDEPS)
  		$(CC) $(CFLAGS) $(GENOBJECTS) $(RL_LIBS) -o python_gen
--- 370,388 ----
  		firstsets.c grammar.c metagrammar.c pgen.c \
  		pgenmain.c printgrammar.c
  
+ 
  # Main Targets
  # ============
  
! python:		libpython.a $(OBJECTS) $(LIBDEPS) Makefile
! 		$(CC) $(CFLAGS) $(OBJECTS) $(LIBS) -o @python
! 		mv @python python
  
! libpython.a:	$(LIBOBJECTS)
! 		-rm -f @lib
! 		ar cr @lib $(LIBOBJECTS)
! 		$(RANLIB) @lib
! 		mv @lib libpython.a
  
  python_gen:	$(GENOBJECTS) $(RL_LIBDEPS)
  		$(CC) $(CFLAGS) $(GENOBJECTS) $(RL_LIBS) -o python_gen
***************
*** 181,186 ****
--- 391,412 ----
  # Utility Targets
  # ===============
  
+ # Don't take the output from lint too seriously.  I have not attempted
+ # to make Python lint-free.  But I use function prototypes.
+ 
+ LINTFLAGS=	-h
+ 
+ LINTCPPFLAGS=	$(CONFIGDEFS) $(CONFIGINCLS) $(SYSVDEF) \
+ 		$(AM_INCL) $(PANEL_INCL)
+ 
+ LINT=		lint
+ 
+ lint::		$(SOURCES)
+ 		$(LINT) $(LINTFLAGS) $(LINTCPPFLAGS) $(SOURCES)
+ 
+ lint::		$(GENSOURCES)
+ 		$(LINT) $(LINTFLAGS) $(GENSOURCES)
+ 
  # Generating dependencies is only necessary if you intend to hack Python.
  # You may change $(MKDEP) to your favorite dependency generator (it should
  # edit the Makefile in place).
***************
*** 200,246 ****
  		$(CTAGS) $(SOURCES) $(GENSOURCES) $(HEADERS)
  
  clean::
! 		-rm -f *.obj core [,#@]*
  
  clobber::	clean
! 		-rm -f python python_gen libpytho.lib tags
  
  
  # Build Special Objects
  # =====================
  
! # You may change $(COMPILE) to reflect the default .c.obj rule...
  
  COMPILE=	$(CC) -c $(CFLAGS)
  
! config.obj:	config.c 
  		$(COMPILE) $(CONFIGDEFS) $(CONFIGINCLS) $*.c
  
! fgetsintr.obj:	fgetsintr.c
  		$(COMPILE) $(SIGTYPEDEF) $*.c
  
! intrcheck.obj:	intrcheck.c
  		$(COMPILE) $(SIGTYPEDEF) $*.c
  
! posixmodule.obj:	posixmodule.c
  		$(COMPILE) $(SYSVDEF) $(NOSYMLINKDEF) $*.c
  
! sc_interpr.obj:	sc_interpr.c
  		$(COMPILE) $(AM_INCL) $*.c
  
! sc_error.obj:	sc_error.c
  		$(COMPILE) $(AM_INCL) $*.c
  
! stdwinmodule.obj:	stdwinmodule.c
  		$(COMPILE) $(STDW_INCL) $*.c
  
! timemodule.obj:	timemodule.c
  		$(COMPILE) $(SIGTYPEDEF) $(BSDTIMEDEF) $*.c
  
! tokenizer.obj:	tokenizer.c
  		$(COMPILE) $(RL_USE) $*.c
  
! #.PRECIOUS:	python libpython.a glmodule.c graminit.c graminit.h
  
  
  # Generated Sources
--- 426,478 ----
  		$(CTAGS) $(SOURCES) $(GENSOURCES) $(HEADERS)
  
  clean::
! 		-rm -f *.o core [,#@]*
  
  clobber::	clean
! 		-rm -f python python_gen libpython.a tags
  
  
  # Build Special Objects
  # =====================
  
! # You may change $(COMPILE) to reflect the default .c.o rule...
  
  COMPILE=	$(CC) -c $(CFLAGS)
  
! amoebamodule.o:	amoebamodule.c
! 		$(COMPILE) $(AM_INCL) $*.c
! 
! config.o:	config.c Makefile
  		$(COMPILE) $(CONFIGDEFS) $(CONFIGINCLS) $*.c
  
! fgetsintr.o:	fgetsintr.c
  		$(COMPILE) $(SIGTYPEDEF) $*.c
  
! intrcheck.o:	intrcheck.c
  		$(COMPILE) $(SIGTYPEDEF) $*.c
  
! panelmodule.o:	panelmodule.c
! 		$(COMPILE) $(PANEL_INCL) $*.c
! 
! posixmodule.o:	posixmodule.c
  		$(COMPILE) $(SYSVDEF) $(NOSYMLINKDEF) $*.c
  
! sc_interpr.o:	sc_interpr.c
  		$(COMPILE) $(AM_INCL) $*.c
  
! sc_error.o:	sc_error.c
  		$(COMPILE) $(AM_INCL) $*.c
  
! stdwinmodule.o:	stdwinmodule.c
  		$(COMPILE) $(STDW_INCL) $*.c
  
! timemodule.o:	timemodule.c
  		$(COMPILE) $(SIGTYPEDEF) $(BSDTIMEDEF) $*.c
  
! tokenizer.o:	tokenizer.c
  		$(COMPILE) $(RL_USE) $*.c
  
! .PRECIOUS:	python libpython.a glmodule.c graminit.c graminit.h
  
  
  # Generated Sources
***************
*** 248,253 ****
--- 480,493 ----
  #
  # Some source files are (or may be) generated.
  # The rules for doing so are given here.
+ 
+ # Build "glmodule.c", the GL interface.
+ # Ignore the messages emitted by the cgen script.
+ # Also ignore the warnings emitted while compiling glmodule.c; it works.
+ 
+ glmodule.c:	cstubs cgen
+ 		python cgen <cstubs >@glmodule.c
+ 		mv @glmodule.c glmodule.c
  
  # The dependencies for graminit.[ch] are not turned on in the
  # distributed Makefile because the files themselves are distributed.
*** dossrc/malloc.h	Wed Mar  6 10:05:33 1991
--- src/malloc.h	Wed Mar  6 10:05:33 1991
*** dossrc/mathmodu.c	Wed Mar  6 10:04:56 1991
--- src/mathmodule.c	Wed Mar  6 10:04:56 1991
***************
*** 24,37 ****
  
  /* Math module -- standard C math library functions, pi and e */
  
! #include "allobjec.h"
  
  #include <errno.h>
  #ifndef errno
  extern int errno;
  #endif
  
! #include "modsuppo.h"
  
  #include <math.h>
  
--- 24,37 ----
  
  /* Math module -- standard C math library functions, pi and e */
  
! #include "allobjects.h"
  
  #include <errno.h>
  #ifndef errno
  extern int errno;
  #endif
  
! #include "modsupport.h"
  
  #include <math.h>
  
*** dossrc/metagram.c	Wed Mar  6 10:05:00 1991
--- src/metagrammar.c	Wed Mar  6 10:05:00 1991
***************
*** 22,29 ****
  
  ******************************************************************/
  
! #include "pgenhead.h"
! #include "metagram.h"
  #include "grammar.h"
  #include "pgen.h"
  static arc arcs_0_0[3] = {
--- 22,29 ----
  
  ******************************************************************/
  
! #include "pgenheaders.h"
! #include "metagrammar.h"
  #include "grammar.h"
  #include "pgen.h"
  static arc arcs_0_0[3] = {
*** dossrc/metagram.h	Wed Mar  6 10:05:47 1991
--- src/metagrammar.h	Wed Mar  6 10:05:47 1991
*** dossrc/methodob.c	Wed Mar  6 10:05:01 1991
--- src/methodobject.c	Wed Mar  6 10:05:01 1991
***************
*** 24,30 ****
  
  /* Method object implementation */
  
! #include "allobjec.h"
  
  #include "token.h"
  
--- 24,30 ----
  
  /* Method object implementation */
  
! #include "allobjects.h"
  
  #include "token.h"
  
*** dossrc/methodob.h	Wed Mar  6 10:05:48 1991
--- src/methodobject.h	Wed Mar  6 10:05:48 1991
*** dossrc/modsuppo.c	Wed Mar  6 10:04:39 1991
--- src/modsupport.c	Wed Mar  6 10:04:39 1991
***************
*** 24,31 ****
  
  /* Module support implementation */
  
! #include "allobjec.h"
! #include "modsuppo.h"
  #include "import.h"
@EOF

chmod 644 pythdos00

exit 0
-- 
Mark Anacker				...{!dsinet,!toybox}!marka
Digital Systems International, Inc.	Redmond, WA   USA    (206) 881-7544
"We have a massive leadership vacuum in this country...
    and we need to change bags" - Sen. Belfry

marka@dsinet (Mark Anacker) (04/04/91)

combine with part 1, then use to patch the original sources.

#---------------------------------- cut here ----------------------------------
# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by Mark Anacker <marka@dsinet> on Wed Apr  3 14:21:20 1991
#
# This archive contains:
#	pythdos01	
#
# Existing files will not be overwritten.

LANG=""; export LANG
PATH=/bin:/usr/bin:$PATH; export PATH

if test -f pythdos01
then
	echo Ok to overwrite existing file pythdos01\?
	read answer
	case "$answer" in
	[yY]*)	echo Proceeding;;
	*)	echo Aborting; exit 1;;
	esac
	rm -f pythdos01
	if test -f pythdos01
	then
		echo Error: could not remove pythdos01, aborting
		exit 1
	fi
fi
echo x - pythdos01
cat >pythdos01 <<'@EOF'
  
  
--- 24,31 ----
  
  /* Module support implementation */
  
! #include "allobjects.h"
! #include "modsupport.h"
  #include "import.h"
  
  
*** dossrc/modsuppo.h	Wed Mar  6 10:05:48 1991
--- src/modsupport.h	Wed Mar  6 10:05:48 1991
*** dossrc/moduleob.c	Wed Mar  6 10:05:01 1991
--- src/moduleobject.c	Wed Mar  6 10:05:01 1991
***************
*** 24,30 ****
  
  /* Module object implementation */
  
! #include "allobjec.h"
  
  typedef struct {
  	OB_HEAD
--- 24,30 ----
  
  /* Module object implementation */
  
! #include "allobjects.h"
  
  typedef struct {
  	OB_HEAD
*** dossrc/moduleob.h	Wed Mar  6 10:05:48 1991
--- src/moduleobject.h	Wed Mar  6 10:05:48 1991
*** dossrc/node.c	Wed Mar  6 10:05:24 1991
--- src/node.c	Wed Mar  6 10:05:24 1991
***************
*** 24,30 ****
  
  /* Parse tree node implementation */
  
! #include "pgenhead.h"
  #include "node.h"
  
  node *
--- 24,30 ----
  
  /* Parse tree node implementation */
  
! #include "pgenheaders.h"
  #include "node.h"
  
  node *
*** dossrc/node.h	Wed Mar  6 10:05:33 1991
--- src/node.h	Wed Mar  6 10:05:33 1991
*** dossrc/object.c	Wed Mar  6 10:04:50 1991
--- src/object.c	Wed Mar  6 10:04:50 1991
***************
*** 24,30 ****
  
  /* Generic object operations; and implementation of None (NoObject) */
  
! #include "allobjec.h"
  
  #ifdef REF_DEBUG
  long ref_total;
--- 24,30 ----
  
  /* Generic object operations; and implementation of None (NoObject) */
  
! #include "allobjects.h"
  
  #ifdef REF_DEBUG
  long ref_total;
*** dossrc/object.h	Wed Mar  6 10:04:19 1991
--- src/object.h	Wed Mar  6 10:04:19 1991
*** dossrc/objimpl.h	Wed Mar  6 10:04:06 1991
--- src/objimpl.h	Wed Mar  6 10:04:06 1991
*** dossrc/opcode.h	Wed Mar  6 10:05:02 1991
--- src/opcode.h	Wed Mar  6 10:05:02 1991
*** dossrc/panelmod.c	Wed Mar  6 10:04:11 1991
--- src/panelmodule.c	Wed Mar  6 10:04:11 1991
*** dossrc/parser.c	Wed Mar  6 10:04:35 1991
--- src/parser.c	Wed Mar  6 10:04:35 1991
***************
*** 28,34 ****
  
  /* XXX To do: error recovery */
  
! #include "pgenhead.h"
  #include "assert.h"
  #include "token.h"
  #include "grammar.h"
--- 28,34 ----
  
  /* XXX To do: error recovery */
  
! #include "pgenheaders.h"
  #include "assert.h"
  #include "token.h"
  #include "grammar.h"
*** dossrc/parser.h	Wed Mar  6 10:05:34 1991
--- src/parser.h	Wed Mar  6 10:05:34 1991
*** dossrc/parsetok.c	Wed Mar  6 10:05:02 1991
--- src/parsetok.c	Wed Mar  6 10:05:02 1991
***************
*** 24,31 ****
  
  /* Parser-tokenizer link implementation */
  
! #include "pgenhead.h"
! #include "tokenize.h"
  #include "node.h"
  #include "grammar.h"
  #include "parser.h"
--- 24,31 ----
  
  /* Parser-tokenizer link implementation */
  
! #include "pgenheaders.h"
! #include "tokenizer.h"
  #include "node.h"
  #include "grammar.h"
  #include "parser.h"
***************
*** 48,54 ****
  {
  	struct tok_state *tok = tok_setups(s);
  	int ret;
! 
  	if (tok == NULL) {
  		fprintf(stderr, "no mem for tok_setups\n");
  		return E_NOMEM;
--- 48,54 ----
  {
  	struct tok_state *tok = tok_setups(s);
  	int ret;
! 	
  	if (tok == NULL) {
  		fprintf(stderr, "no mem for tok_setups\n");
  		return E_NOMEM;
*** dossrc/parsetok.h	Wed Mar  6 10:05:49 1991
--- src/parsetok.h	Wed Mar  6 10:05:49 1991
*** dossrc/patchlev.h	Wed Mar  6 11:12:15 1991
--- src/patchlevel.h	Wed Mar  6 11:12:15 1991
*** dossrc/pgen.c	Wed Mar  6 10:04:26 1991
--- src/pgen.c	Wed Mar  6 10:04:26 1991
***************
*** 27,38 ****
  
  /* For a description, see the comments at end of this file */
  
! #include "pgenhead.h"
  #include "assert.h"
  #include "token.h"
  #include "node.h"
  #include "grammar.h"
! #include "metagram.h"
  #include "pgen.h"
  
  extern int debugging;
--- 27,38 ----
  
  /* For a description, see the comments at end of this file */
  
! #include "pgenheaders.h"
  #include "assert.h"
  #include "token.h"
  #include "node.h"
  #include "grammar.h"
! #include "metagrammar.h"
  #include "pgen.h"
  
  extern int debugging;
*** dossrc/pgen.h	Wed Mar  6 10:05:49 1991
--- src/pgen.h	Wed Mar  6 10:05:49 1991
*** dossrc/pgenhead.h	Wed Mar  6 10:05:36 1991
--- src/pgenheaders.h	Wed Mar  6 10:05:36 1991
*** dossrc/pgenmain.c	Wed Mar  6 10:05:03 1991
--- src/pgenmain.c	Wed Mar  6 10:05:03 1991
***************
*** 32,38 ****
     Error messages and status info during the generation process are
     written to stdout, or sometimes to stderr. */
  
! #include "pgenhead.h"
  #include "grammar.h"
  #include "node.h"
  #include "parsetok.h"
--- 32,38 ----
     Error messages and status info during the generation process are
     written to stdout, or sometimes to stderr. */
  
! #include "pgenheaders.h"
  #include "grammar.h"
  #include "node.h"
  #include "parsetok.h"
***************
*** 56,62 ****
  	node *n;
  	FILE *fp;
  	char *filename;
! 
  #ifdef THINK_C
  	filename = askfile();
  #else
--- 56,62 ----
  	node *n;
  	FILE *fp;
  	char *filename;
! 	
  #ifdef THINK_C
  	filename = askfile();
  #else
*** dossrc/posixmod.c	Wed Mar  6 11:15:02 1991
--- src/posixmodule.c	Wed Mar  6 11:15:02 1991
***************
*** 29,63 ****
  #include <setjmp.h>
  #include <sys/types.h>
  #include <sys/stat.h>
! #include <time.h>
  #ifdef SYSV
  #include <dirent.h>
  #define direct dirent
  #else
! #include <dir.h>
! #include <io.h>
  #endif
  
! #ifdef MSDOS
! #include <dos.h>
! #include <fcntl.h>
  
- struct timeval {
- 	unsigned long tv_sec;
- 	long	tv_usec;
- 	};
- 
- #endif
- 
- #include "allobjec.h"
- #include "modsuppo.h"
- 
  extern char *strerror PROTO((int));
  
  #ifdef AMOEBA
  #define NO_LSTAT
  #endif
  
  /* Return a dictionary corresponding to the POSIX environment table */
  
  extern char **environ;
--- 29,52 ----
  #include <setjmp.h>
  #include <sys/types.h>
  #include <sys/stat.h>
! #include <sys/time.h>
  #ifdef SYSV
  #include <dirent.h>
  #define direct dirent
  #else
! #include <sys/dir.h>
  #endif
  
! #include "allobjects.h"
! #include "modsupport.h"
  
  extern char *strerror PROTO((int));
  
  #ifdef AMOEBA
  #define NO_LSTAT
  #endif
  
+ 
  /* Return a dictionary corresponding to the POSIX environment table */
  
  extern char **environ;
***************
*** 198,216 ****
  	object *self;
  	object *args;
  {
- #ifdef MSDOS
- 	object *path1;
- 	int i;
- 	if (!getstrintarg(args, &path1, &i))
- 		return NULL;
- 	if (_chmod(getstringvalue(path1), 1, i) < 0)
- 		return posix_error();
- 	INCREF(None);
- 	return None;
- #else
  	extern int chmod PROTO((const char *, mode_t));
! 	return posix_strint(args, _chmod);
! #endif
  }
  
  static object *
--- 187,194 ----
  	object *self;
  	object *args;
  {
  	extern int chmod PROTO((const char *, mode_t));
! 	return posix_strint(args, chmod);
  }
  
  static object *
***************
*** 232,243 ****
  	object *self;
  	object *args;
  {
- #ifndef MSDOS
  	extern int link PROTO((const char *, const char *));
  	return posix_2str(args, link);
- #else
- 	return NULL;
- #endif
  }
  
  static object *
--- 210,217 ----
  	object *self;
  	object *args;
  {
  	extern int link PROTO((const char *, const char *));
  	return posix_2str(args, link);
  }
  
  static object *
***************
*** 246,280 ****
  	object *args;
  {
  	object *name, *d, *v;
- 
- #ifdef MSDOS
- 	struct ffblk ep;
- 	int rv;
- 	if (!getstrarg(args, &name))
- 		return NULL;
- 
- 	if (findfirst((char *) getstringvalue(name),&ep,0) == -1)
- 		return posix_error();
- 	if ((d = newlistobject(0)) == NULL)
- 		return NULL;
- 	rv = 0;
- 	while (rv == 0) {
- 		v = newstringobject(ep.ff_name);
- 		if (v == NULL) {
- 			DECREF(d);
- 			d = NULL;
- 			break;
- 		}
- 		if (addlistitem(d, v) != 0) {
- 			DECREF(v);
- 			DECREF(d);
- 			d = NULL;
- 			break;
- 		}
- 		DECREF(v);
- 		rv = findnext(&ep);
- 	}
- #else
  	DIR *dirp;
  	struct direct *ep;
  	if (!getstrarg(args, &name))
--- 220,225 ----
  	object *args;
  {
  	object *name, *d, *v;
  	DIR *dirp;
  	struct direct *ep;
  	if (!getstrarg(args, &name))
***************
*** 301,308 ****
  		DECREF(v);
  	}
  	closedir(dirp);
- #endif
- 
  	return d;
  }
  
--- 246,251 ----
  		DECREF(v);
  	}
  	closedir(dirp);
  	return d;
  }
  
***************
*** 360,368 ****
  	object *self;
  	object *args;
  {
- #ifdef MSDOS
- 	return NULL;			/* no reasonable DOS equivalent */
- #else
  	int i;
  	if (!getintarg(args, &i))
  		return NULL;
--- 303,308 ----
  	object *self;
  	object *args;
  {
  	int i;
  	if (!getintarg(args, &i))
  		return NULL;
***************
*** 370,376 ****
  	if (i < 0)
  		return posix_error();
  	return newintobject((long)i);
- #endif
  }
  
  static object *
--- 310,315 ----
  	if (i < 0)
  		return posix_error();
  	return newintobject((long)i);
  }
  
  static object *
***************
*** 389,401 ****
  {
  	object *path;
  	struct timeval tv[2];
- #ifdef MSDOS
- 	struct date dt;
- 	struct time tm;
- 	struct ftime dft;
- 	int	fh;
- #endif
- 
  	if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 2) {
  		err_badarg();
  		return NULL;
--- 328,333 ----
  {
  	object *path;
  	struct timeval tv[2];
  	if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 2) {
  		err_badarg();
  		return NULL;
***************
*** 405,434 ****
  					&tv[0].tv_sec, &tv[1].tv_sec))
  		return NULL;
  	tv[0].tv_usec = tv[1].tv_usec = 0;
- #ifdef MSDOS
- 	unixtodos(tv[0].tv_sec,&dt,&tm);
- 	dft.ft_tsec = tm.ti_sec; dft.ft_min = tm.ti_min;
- 	dft.ft_hour = tm.ti_hour; dft.ft_day = dt.da_day;
- 	dft.ft_month = dt.da_mon;
- 	dft.ft_year = (dt.da_year - 1980);	/* this is for TC library */
- 
- 	if ((fh = open(getstringvalue(path),O_RDWR)) < 0)
- 		return posix_error();	/* can't open file to set time */
- 	if (setftime(fh,&dft) < 0)
- 	{
- 		close(fh);
- 		return posix_error();
- 	}
- 	close(fh);				/* close the temp handle */
- #else
  	if (utime(getstringvalue(path), tv) < 0)
  		return posix_error();
- #endif
  	INCREF(None);
  	return None;
  }
  
- #define	NO_LSTAT
  
  #ifndef NO_LSTAT
  
--- 337,348 ----
  					&tv[0].tv_sec, &tv[1].tv_sec))
  		return NULL;
  	tv[0].tv_usec = tv[1].tv_usec = 0;
  	if (utime(getstringvalue(path), tv) < 0)
  		return posix_error();
  	INCREF(None);
  	return None;
  }
  
  
  #ifndef NO_LSTAT
  
*** dossrc/printgra.c	Wed Mar  6 10:05:05 1991
--- src/printgrammar.c	Wed Mar  6 10:05:05 1991
***************
*** 24,30 ****
  
  /* Print a bunch of C initializers that represent a grammar */
  
! #include "pgenhead.h"
  #include "grammar.h"
  
  /* Forward */
--- 24,30 ----
  
  /* Print a bunch of C initializers that represent a grammar */
  
! #include "pgenheaders.h"
  #include "grammar.h"
  
  /* Forward */
***************
*** 38,44 ****
  	grammar *g;
  	FILE *fp;
  {
! 	fprintf(fp, "#include \"pgenhead.h\"\n");
  	fprintf(fp, "#include \"grammar.h\"\n");
  	printdfas(g, fp);
  	printlabels(g, fp);
--- 38,44 ----
  	grammar *g;
  	FILE *fp;
  {
! 	fprintf(fp, "#include \"pgenheaders.h\"\n");
  	fprintf(fp, "#include \"grammar.h\"\n");
  	printdfas(g, fp);
  	printlabels(g, fp);
*** dossrc/profmain.c	Wed Mar  6 10:05:15 1991
--- src/profmain.c	Wed Mar  6 10:05:15 1991
***************
*** 30,36 ****
  #include "node.h"
  #include "parsetok.h"
  #include "graminit.h"
! #include "tokenize.h"
  #include "errcode.h"
  #include "malloc.h"
  
--- 30,36 ----
  #include "node.h"
  #include "parsetok.h"
  #include "graminit.h"
! #include "tokenizer.h"
  #include "errcode.h"
  #include "malloc.h"
  
***************
*** 112,118 ****
  runparser(fp, start)
  	FILE *fp;
  {
- 	grammar module_input;
  	node *n;
  	int ret;
  	ret = parsefile(fp, &gram, module_input, "Parsing", ".", &n);
--- 112,117 ----
  runparser(fp, start)
  	FILE *fp;
  {
  	node *n;
  	int ret;
  	ret = parsefile(fp, &gram, module_input, "Parsing", ".", &n);
*** dossrc/PROTO.h	Wed Mar  6 10:05:21 1991
--- src/PROTO.h	Wed Mar  6 10:05:21 1991
*** dossrc/python.c	Wed Mar  6 10:04:40 1991
--- src/pythonmain.c	Wed Mar  6 10:04:40 1991
***************
*** 24,42 ****
  
  /* Python interpreter main program */
  
! #include "patchlev.h"
  
! #include "allobjec.h"
  
  #include "grammar.h"
  #include "node.h"
  #include "parsetok.h"
  #include "graminit.h"
  #include "errcode.h"
! #include "sysmodul.h"
  #include "compile.h"
  #include "ceval.h"
! #include "pythonru.h"
  #include "import.h"
  
  extern char *getpythonpath();
--- 24,42 ----
  
  /* Python interpreter main program */
  
! #include "patchlevel.h"
  
! #include "allobjects.h"
  
  #include "grammar.h"
  #include "node.h"
  #include "parsetok.h"
  #include "graminit.h"
  #include "errcode.h"
! #include "sysmodule.h"
  #include "compile.h"
  #include "ceval.h"
! #include "pythonrun.h"
  #include "import.h"
  
  extern char *getpythonpath();
*** dossrc/python.prj	Wed Apr  3 13:56:00 1991
--- src/python.prj	Wed Apr  3 13:56:00 1991
***************
*** 1,44 ****
- python.c
- 
- acceler.c
- bltinmod.c
- ceval.c
- classobj.c
- compile.c
- dictobje.c
- errors.c
- fgetsint.c
- fileobje.c
- floatobj.c
- frameobj.c
- funcobje.c
- graminit.c
- grammar1.c
- import.c
- intobjec.c
- intrchec.c
- listnode.c
- listobje.c
- mathmodu.c
- methodob.c
- modsupport.c
- moduleob.c
- node.c
- object.c
- parser.c
- parsetok.c
- posixmod.c
- regexp.c
- regexpmo.c
- strdup.c
- stringob.c
- structme.c
- sysmodul.c
- timemodu.c
- tokenize.c
- tracebac.c
- tupleobj.c
- typeobje.c
- 
- config.c
- 
--- 0 ----
*** dossrc/pythonru.h	Wed Mar  6 10:05:37 1991
--- src/pythonrun.h	Wed Mar  6 10:05:37 1991
*** dossrc/README	Wed Mar  6 10:05:44 1991
--- src/README	Wed Mar  6 10:05:44 1991
*** dossrc/regexp.c	Wed Mar  6 10:04:12 1991
--- src/regexp.c	Wed Mar  6 10:04:12 1991
***************
*** 4,10 ****
  
                          All Rights Reserved
  
! Permission to use, copy, modify, and distribute this software and its
  documentation for any purpose and without fee is hereby granted, 
  provided that the above copyright notice appear in all copies and that
  both that copyright notice and this permission notice appear in 
--- 4,10 ----
  
                          All Rights Reserved
  
! Permission to use, copy, modify, and distribute this software and its 
  documentation for any purpose and without fee is hereby granted, 
  provided that the above copyright notice appear in all copies and that
  both that copyright notice and this permission notice appear in 
***************
*** 54,60 ****
  #include "PROTO.h"
  #include "malloc.h"
  #undef ANY /* Conflicting identifier defined in malloc.h */
! /* #include <string.h> */		/* XXX Remove if not found */
  #include "regexp.h"
  #include "regmagic.h"
  
--- 54,60 ----
  #include "PROTO.h"
  #include "malloc.h"
  #undef ANY /* Conflicting identifier defined in malloc.h */
! #include <string.h>		/* XXX Remove if not found */
  #include "regexp.h"
  #include "regmagic.h"
  
*** dossrc/regexp.h	Wed Mar  6 10:05:37 1991
--- src/regexp.h	Wed Mar  6 10:05:37 1991
*** dossrc/regexpmo.c	Wed Mar  6 10:04:26 1991
--- src/regexpmodule.c	Wed Mar  6 10:04:26 1991
***************
*** 25,36 ****
  /* Regular expression objects */
  /* This needs V8 or Henry Spencer's regexp! */
  
! #include "allobjec.h"
! #include "modsuppo.h"
  
  #include "regexp.h"
  
! static object *RegexpError;	/* Exception */
  
  typedef struct {
  	OB_HEAD
--- 25,36 ----
  /* Regular expression objects */
  /* This needs V8 or Henry Spencer's regexp! */
  
! #include "allobjects.h"
! #include "modsupport.h"
  
  #include "regexp.h"
  
! static object *RegexpError;	/* Exception */	
  
  typedef struct {
  	OB_HEAD
*** dossrc/regmagic.h	Wed Mar  6 10:05:49 1991
--- src/regmagic.h	Wed Mar  6 10:05:49 1991
*** dossrc/regsub.c	Wed Mar  6 10:05:05 1991
--- src/regsub.c	Wed Mar  6 10:05:05 1991
*** dossrc/rltokeni.c	Wed Mar  6 10:06:09 1991
--- src/rltokenizer.c	Wed Mar  6 10:06:09 1991
***************
*** 23,26 ****
  ******************************************************************/
  
  #define USE_READLINE
! #include "tokenize.c"
--- 23,26 ----
  ******************************************************************/
  
  #define USE_READLINE
! #include "tokenizer.c"
*** dossrc/sc_error.c	Wed Mar  6 10:05:05 1991
--- src/sc_errors.c	Wed Mar  6 10:05:05 1991
***************
*** 28,47 ****
  #include "PROTO.h"
  #include "object.h"
  #include "errors.h"
! #include "sc_error.h"
! #include "stringob.h"
! #include "tupleobj.h"
  
  object *
  err_scerr(sc_errno)
  	int sc_errno;
  {
  	switch(sc_errno) {
! 
  	case NoBufSize:
  		err_setstr(StubcodeError, "Stubcode didn't start with BufSize");
  		break;
! 
  	case TwoBufSize:
  		err_setstr(StubcodeError, "Stubcode can't have more then one BufSize");
  		break;
--- 28,47 ----
  #include "PROTO.h"
  #include "object.h"
  #include "errors.h"
! #include "sc_errors.h"
! #include "stringobject.h"
! #include "tupleobject.h"
  
  object *
  err_scerr(sc_errno)
  	int sc_errno;
  {
  	switch(sc_errno) {
! 	
  	case NoBufSize:
  		err_setstr(StubcodeError, "Stubcode didn't start with BufSize");
  		break;
! 	
  	case TwoBufSize:
  		err_setstr(StubcodeError, "Stubcode can't have more then one BufSize");
  		break;
*** dossrc/sc_error.h	Wed Mar  6 10:05:50 1991
--- src/sc_errors.h	Wed Mar  6 10:05:50 1991
*** dossrc/sc_globa.h	Wed Mar  6 10:05:06 1991
--- src/sc_global.h	Wed Mar  6 10:05:06 1991
*** dossrc/sc_inter.c	Wed Mar  6 10:04:15 1991
--- src/sc_interpr.c	Wed Mar  6 10:04:15 1991
***************
*** 28,46 ****
  #endif
  #include <stdio.h>
  
! #include <ailamoeb.h>
  
  #include "PROTO.h"
  #include "sc_global.h"
  #include "object.h"
  #include "objimpl.h"
! #include "stringob.h"
  #include "errors.h"
! #include "sc_error.h"
  #include "stubcode.h"
! #include "tupleobj.h"
! #include "intobjec.h"
! #include "listobje.h"
  
  typedef struct s_loopstruct {
  	struct s_loopstruct	*l_next;	/* Make a list of it      */
--- 28,46 ----
  #endif
  #include <stdio.h>
  
! #include <ailamoeba.h>
  
  #include "PROTO.h"
  #include "sc_global.h"
  #include "object.h"
  #include "objimpl.h"
! #include "stringobject.h"
  #include "errors.h"
! #include "sc_errors.h"
  #include "stubcode.h"
! #include "tupleobject.h"
! #include "intobject.h"
! #include "listobject.h"
  
  typedef struct s_loopstruct {
  	struct s_loopstruct	*l_next;	/* Make a list of it      */
*** dossrc/scdbg.c	Wed Mar  6 10:05:06 1991
--- src/scdbg.c	Wed Mar  6 10:05:06 1991
***************
*** 23,29 ****
  ******************************************************************/
  
  
! #include "sc_globa.h"
  
  void xPrintNum(Num)
  TscOperand Num;
--- 23,29 ----
  ******************************************************************/
  
  
! #include "sc_global.h"
  
  void xPrintNum(Num)
  TscOperand Num;
*** dossrc/sigtype.h	Wed Mar  6 10:05:37 1991
--- src/sigtype.h	Wed Mar  6 10:05:37 1991
*** dossrc/stdwinmo.c	Wed Mar  6 10:04:09 1991
--- src/stdwinmodule.c	Wed Mar  6 10:04:09 1991
*** dossrc/stdwinob.h	Wed Mar  6 10:05:50 1991
--- src/stdwinobject.h	Wed Mar  6 10:05:50 1991
*** dossrc/strdup.c	Wed Mar  6 10:05:51 1991
--- src/strdup.c	Wed Mar  6 10:05:51 1991
*** dossrc/strerror.c	Wed Mar  6 10:05:51 1991
--- src/strerror.c	Wed Mar  6 10:05:51 1991
*** dossrc/stringob.c	Wed Mar  6 10:04:40 1991
--- src/stringobject.c	Wed Mar  6 10:04:40 1991
***************
*** 24,30 ****
  
  /* String object implementation */
  
! #include "allobjec.h"
  
  object *
  newsizedstringobject(str, size)
--- 24,30 ----
  
  /* String object implementation */
  
! #include "allobjects.h"
  
  object *
  newsizedstringobject(str, size)
*** dossrc/stringob.h	Wed Mar  6 10:05:25 1991
--- src/stringobject.h	Wed Mar  6 10:05:25 1991
*** dossrc/strtol.c	Wed Mar  6 10:05:16 1991
--- src/strtol.c	Wed Mar  6 10:05:16 1991
*** dossrc/structme.c	Wed Mar  6 10:05:06 1991
--- src/structmember.c	Wed Mar  6 10:05:06 1991
***************
*** 24,32 ****
  
  /* Map C struct members to Python object attributes */
  
! #include "allobjec.h"
  
! #include "structme.h"
  
  object *
  getmember(addr, mlist, name)
--- 24,32 ----
  
  /* Map C struct members to Python object attributes */
  
! #include "allobjects.h"
  
! #include "structmember.h"
  
  object *
  getmember(addr, mlist, name)
*** dossrc/structme.h	Wed Mar  6 10:05:25 1991
--- src/structmember.h	Wed Mar  6 10:05:25 1991
*** dossrc/stubcode.h	Wed Mar  6 10:06:09 1991
--- src/stubcode.h	Wed Mar  6 10:06:09 1991
*** dossrc/sysmodul.c	Wed Mar  6 10:04:57 1991
--- src/sysmodule.c	Wed Mar  6 10:04:57 1991
***************
*** 37,47 ****
  - ps1, ps2: optional primary and secondary prompts (strings)
  */
  
! #include "allobjec.h"
  
! #include "sysmodul.h"
  #include "import.h"
! #include "modsuppo.h"
  
  /* Define delimiter used in $PYTHONPATH */
  
--- 37,47 ----
  - ps1, ps2: optional primary and secondary prompts (strings)
  */
  
! #include "allobjects.h"
  
! #include "sysmodule.h"
  #include "import.h"
! #include "modsupport.h"
  
  /* Define delimiter used in $PYTHONPATH */
  
*** dossrc/sysmodul.h	Wed Mar  6 10:05:51 1991
--- src/sysmodule.h	Wed Mar  6 10:05:51 1991
*** dossrc/timemodu.c	Wed Mar  6 10:04:57 1991
--- src/timemodule.c	Wed Mar  6 10:04:57 1991
***************
*** 24,32 ****
  
  /* Time module */
  
! #include "allobjec.h"
  
! #include "modsuppo.h"
  
  #include "sigtype.h"
  
--- 24,32 ----
  
  /* Time module */
  
! #include "allobjects.h"
  
! #include "modsupport.h"
  
  #include "sigtype.h"
  
*** dossrc/token.h	Wed Mar  6 10:05:38 1991
--- src/token.h	Wed Mar  6 10:05:38 1991
*** dossrc/tokenize.c	Wed Mar  6 10:04:23 1991
--- src/tokenizer.c	Wed Mar  6 10:04:23 1991
***************
*** 28,40 ****
  /* XXX Need a better interface to report errors than writing to stderr */
  /* XXX Should use editor resource to fetch true tab size on Macintosh */
  
! #include "pgenhead.h"
  
  #include <ctype.h>
! /* #include "string.h" */
  
! #include "fgetsint.h"
! #include "tokenize.h"
  #include "errcode.h"
  
  #ifdef THINK_C
--- 28,40 ----
  /* XXX Need a better interface to report errors than writing to stderr */
  /* XXX Should use editor resource to fetch true tab size on Macintosh */
  
! #include "pgenheaders.h"
  
  #include <ctype.h>
! #include "string.h"
  
! #include "fgetsintr.h"
! #include "tokenizer.h"
  #include "errcode.h"
  
  #ifdef THINK_C
*** dossrc/tokenize.h	Wed Mar  6 10:05:25 1991
--- src/tokenizer.h	Wed Mar  6 10:05:25 1991
*** dossrc/tracebac.c	Wed Mar  6 10:04:57 1991
--- src/traceback.c	Wed Mar  6 10:04:57 1991
***************
*** 24,35 ****
  
  /* Traceback implementation */
  
! #include "allobjec.h"
  
  #include "compile.h"
! #include "frameobj.h"
! #include "tracebac.h"
! #include "structme.h"
  
  typedef struct _tracebackobject {
  	OB_HEAD
--- 24,35 ----
  
  /* Traceback implementation */
  
! #include "allobjects.h"
  
  #include "compile.h"
! #include "frameobject.h"
! #include "traceback.h"
! #include "structmember.h"
  
  typedef struct _tracebackobject {
  	OB_HEAD
*** dossrc/tracebac.h	Wed Mar  6 10:05:52 1991
--- src/traceback.h	Wed Mar  6 10:05:52 1991
*** dossrc/tupleobj.c	Wed Mar  6 10:04:51 1991
--- src/tupleobject.c	Wed Mar  6 10:04:51 1991
***************
*** 24,30 ****
  
  /* Tuple object implementation */
  
! #include "allobjec.h"
  
  object *
  newtupleobject(size)
--- 24,30 ----
  
  /* Tuple object implementation */
  
! #include "allobjects.h"
  
  object *
  newtupleobject(size)
*** dossrc/tupleobj.h	Wed Mar  6 10:05:26 1991
--- src/tupleobject.h	Wed Mar  6 10:05:26 1991
*** dossrc/typeobje.c	Wed Mar  6 10:05:38 1991
--- src/typeobject.c	Wed Mar  6 10:05:38 1991
***************
*** 24,30 ****
  
  /* Type object implementation */
  
! #include "allobjec.h"
  
  /* Type object implementation */
  
--- 24,30 ----
  
  /* Type object implementation */
  
! #include "allobjects.h"
  
  /* Type object implementation */
  
*** dossrc/xxobject.c	Wed Mar  6 10:05:07 1991
--- src/xxobject.c	Wed Mar  6 10:05:07 1991
***************
*** 34,40 ****
  
  /* Xx objects */
  
! #include "allobjec.h"
  
  typedef struct {
  	OB_HEAD
--- 34,40 ----
  
  /* Xx objects */
  
! #include "allobjects.h"
  
  typedef struct {
  	OB_HEAD
@EOF

chmod 644 pythdos01

exit 0
-- 
Mark Anacker				...{!dsinet,!toybox}!marka
Digital Systems International, Inc.	Redmond, WA   USA    (206) 881-7544
"We have a massive leadership vacuum in this country...
    and we need to change bags" - Sen. Belfry