Commit Graph

16902 Commits

Author SHA1 Message Date
Guido van Rossum ee34ac124a Let's have some sanity. Introduce a helper to issue a symbol table
warning.
2001-02-28 22:08:12 +00:00
Skip Montanaro 58177b9975 added description of NL token 2001-02-28 22:05:41 +00:00
Guido van Rossum 0bba7f83f2 Use the new PyErr_WarnExplicit() API to issue better warnings for
global after assign / use.

Note: I'm not updating the PyErr_Warn() call for import * / exec
combined with a function, because I can't trigger it with an example.
Jeremy, just follow the example of the call to PyErr_WarnExplicit()
that I *did* include.
2001-02-28 21:55:38 +00:00
Fred Drake 9da7f3b4f4 SyntaxError__init__(): Be a little more robust when picking apart the
location information for the SyntaxError -- do not do more than we
    need to, stopping as soon as an exception has been raised.
2001-02-28 21:52:10 +00:00
Fred Drake 9c98a428ef Move some constant initialization from FTP.__init__() and FTP.connect()
to the class namespace.

Allow FTP.close() to be called more than once without tossing cookies.
(This seems to be a fairly common idiom for .close() methods, so let's
try to be consistent.)
2001-02-28 21:46:37 +00:00
Guido van Rossum 2fd456508f Add PyErr_WarnExplicit(), which calls warnings.warn_explicit(), with
explicit filename, lineno etc. arguments.
2001-02-28 21:46:24 +00:00
Guido van Rossum 1bcb7e9327 Add declaration for PyErr_WarnExplicit(). 2001-02-28 21:44:20 +00:00
Guido van Rossum 9e26318975 Add a new API:
warn_explicit(message, category, filename, lineno, module, registry)

The regular warn() call calculates a bunch of values and calls
warn_explicit() with these.

This will be used to issue better syntax warnings.
2001-02-28 21:43:40 +00:00
Andrew M. Kuchling d6a1d79d16 Mention pydoc 2001-02-28 21:05:42 +00:00
Andrew M. Kuchling 3a95850323 Leave #! lines featuring /usr/bin/env alone 2001-02-28 20:59:33 +00:00
Fred Drake b797f1f6d2 Now that Jeremy is asking about this code, it looks really bogus to me,
so let's rip it out.  The constructor for SyntaxError does the right
thing, so we do not need to do it again.
2001-02-28 20:58:04 +00:00
Andrew M. Kuchling aece4270b1 Install the pydoc script 2001-02-28 20:56:49 +00:00
Andrew M. Kuchling b68ef5081d Add script form of pydoc so that it's present in beta1. Currently
this just copies the __name__=='__main__' logic from pydoc.py.
    ?!ng can decide whether he wants to create a main() in pydoc, or rip
    it out of pydoc.py completely.
2001-02-28 20:55:10 +00:00
Andrew M. Kuchling b69c758f3b Fix for bug #404875: fix typo in setup.py 2001-02-28 19:49:57 +00:00
Andrew M. Kuchling 6335773434 Placate tabnanny 2001-02-28 19:40:27 +00:00
Fred Drake 3e038e5e25 Define lots of constants for indexes into the structures for the file
header and central directory structures, and use them as appropriate.
The point being to make it easier to tell what is getting pulled out
where; magic numbers are evil!

Change the computation of the ZipInfo.file_offset field to use the
length of the relevant "extra" field -- there are two different ones,
and the wrong one had been used.  ;-(

This closes SF tracker patch #403276, but more verbosely than the
proposed patch.
2001-02-28 17:56:26 +00:00
Jeremy Hylton 62e2c7e3df Add regression test for future statements. This adds eight files, but
seven are not tests in their own right; these files are mentioned in
regrtest.
2001-02-28 17:48:06 +00:00
Jeremy Hylton ad3d3f2f3f Improve SyntaxErrors for bad future statements. Set file and location
for errors raised in future.c.

Move some helper functions from compile.c to errors.c and make them
API functions: PyErr_SyntaxLocation() and PyErr_ProgramText().
2001-02-28 17:47:12 +00:00
Tim Peters 5687ffe0c5 SF patch 404928: Support for next Cygwin gcc (2.95.2-8) 2001-02-28 16:44:18 +00:00
Jack Jansen c6cecf55d1 Reset the resource file chain before calling PyMac_OpenPrefFile. I'm not sure why this wasn't a problem before... 2001-02-28 15:54:18 +00:00
Jack Jansen f7fb3e6435 Oops, need to import Res. 2001-02-28 15:53:18 +00:00
Jack Jansen 72b97aed80 If we can't find our splash dialog (i.e. we're probably running from source) go into interactive mode: print what we're doing and ask about carbon/classic configure. 2001-02-28 11:23:04 +00:00
Tim Peters 85ba673b0a Whitespace normalization. 2001-02-28 08:26:44 +00:00
Tim Peters 8de0c1716b Removed now-unreferenced CHECK_IMPORT_CASE from Windows config.h.
NOTE:  someone who understands Unix config should remove it from acconfig.h too.
2001-02-28 08:15:16 +00:00
Jeremy Hylton 9f1b9932b8 Print the offending line of code in the traceback for SyntaxErrors
raised by the compiler.

XXX For now, text entered into the interactive intepreter is not
printed in the traceback.

Inspired by a patch from Roman Sulzhyk

compile.c:

Add helper fetch_program_text() that opens a file and reads until it
finds the specified line number.  The code is a near duplicate of
similar code in traceback.c.

Modify com_error() to pass two arguments to SyntaxError constructor,
where the second argument contains the offending text when possible.

Modify set_error_location(), now used only by the symtable pass, to
set the text attribute on existing exceptions.

pythonrun.c:

Change parse_syntax_error() to continue of the offset attribute of a
SyntaxError is None.  In this case, it sets offset to -1.

Move code from PyErr_PrintEx() into helper function
print_error_text().  In the helper, only print the caret for a
SyntaxError if offset > 0.
2001-02-28 07:07:43 +00:00
Tim Peters e860f9b983 Ack -- my eyes are getting bleary. Typos in the comment typo repairs. 2001-02-28 05:57:51 +00:00
Tim Peters f91ed2ddcf Comment typos. 2001-02-28 05:56:18 +00:00
Tim Peters 50d8d37b3f Implement PEP 235: Import on Case-Insensitive Platforms.
http://python.sourceforge.net/peps/pep-0235.html

Renamed check_case to case_ok.  Substantial code rearrangement to get
this stuff in one place in the file.  Innermost loop of find_module()
now much simpler and #ifdef-free, and I want to keep it that way (it's
bad enough that the innermost loop is itself still in an #ifdef!).

Windows semantics tested and are fine.

Jason, Cygwin *should* be fine if and only if what you did before "worked"
for case_ok.

Jack, the semantics on your flavor of Mac have definitely changed (see
the PEP), and need to be tested.  The intent is that your flavor of Mac
now work the same as everything else in the "lower left" box, including
respecting PYTHONCASEOK.

Steven, sorry, you did the most work here so far but you got screwed the
worst.  Happy to work with you on repairing it, but I don't understand
anything about all your Mac variants.  We need to add another branch (or
two, three, ...?) inside case_ok.  But we should not need to change
anything else.
2001-02-28 05:34:27 +00:00
Fred Drake 6e7e485d5d Added regression test for SF tracker bug #403871: AttributeError in
ZipFile.__del__() when there was an IOError opening the underlying
    file in ZipFile.__init__().

    This is an odd test: since the exception is in the __del__() method,
    it is not propogated.  This test will trigger it but regrtest.py
    does not detect the failure (not sure why); we are dependent on it
    actually being noticed by a user to get a new bug report if it ever
    fails.  ;-(

    On the other hand, this makes sure that code gets exercised, so
    a failure could be noticed!
2001-02-28 05:34:16 +00:00
Fred Drake 90eac285c8 Fix SF tracker bug #403871: AttributeError in ZipFile.__del__() when
there was an IOError opening the underlying file in ZipFile.__init__().
2001-02-28 05:29:34 +00:00
Jeremy Hylton 3f571d6497 Fix SF buf 404774 submitted by Gregory H. Ball
A user program could delete a function's func_closure, which would
cause it to crash when called.
2001-02-28 02:42:56 +00:00
Jeremy Hylton 280c81a940 Need to support single_input explicitly so from __future__ imports
are legal at the interactive interpreter prompt.  They don't do
anything yet...
2001-02-28 02:26:14 +00:00
Jeremy Hylton 39e2f3f824 Presumed correct compiler pass for future statements
XXX still need to integrate into symtable API

compile.h: Remove ff_n_simple_stmt; obsolete.

           Add ff_found_docstring used internally to skip one and only
           one string at the beginning of a module.

compile.c: Add check for from __future__ imports to far into the file.

 	   In symtable_global() check for -1 returned from
	   symtable_lookup(), which signifies name not defined.

	   Add missing DECERF in symtable_add_def.

           Free c->c_future.

future.c:  Add special handling for multiple statements joined on a
	   single line using one or more semicolons; this form can
           include an illegal future statement that would otherwise be
           hard to detect.

	   Add support for detecting and skipping doc strings.
2001-02-28 01:58:08 +00:00
Jeremy Hylton 8e43cd7929 verify that warnings are issued for bogus uses of global 2001-02-28 01:51:01 +00:00
Skip Montanaro ff443a51eb added missing element to __all__ 2001-02-28 01:03:48 +00:00
Skip Montanaro 6c0a0e1538 added some elements missing from __all__ 2001-02-28 01:00:58 +00:00
Ka-Ping Yee 457aab237f Macintosh compatibility. 2001-02-27 23:36:29 +00:00
Ka-Ping Yee 5e2b173333 Acknowledgements. 2001-02-27 23:35:09 +00:00
Jack Jansen 24033e3d60 Updated for 2.1a3 2001-02-27 23:24:07 +00:00
Jack Jansen 6223d48933 Added Popt resource for "dont show console"
Changed SIZE resource to be carbon-compatible.
2001-02-27 23:22:51 +00:00
Jack Jansen 64700c9603 Various tweaks to make it work on MacOSX. 2001-02-27 23:22:02 +00:00
Jack Jansen 9fa7720976 Added future.c 2001-02-27 23:19:58 +00:00
Ka-Ping Yee 40c49919fb Fix $Revision$ processing so it doesn't get eaten by CVS! 2001-02-27 22:46:01 +00:00
Ka-Ping Yee 09d7d9a552 Add $Revision: $ tag. 2001-02-27 22:43:48 +00:00
Ka-Ping Yee 6f3f9a4c64 Add display of $Revision $ and credits. 2001-02-27 22:42:36 +00:00
Fred Drake 969ab2710a Update documentation for termios module; do not refer to the TERMIOS module
for constant definitions.

Add a deprecation to the TERMIOS module.
2001-02-27 22:01:15 +00:00
Fred Drake 5dd09bb5df No need to call filterwarnings() to suppress further warnings from this
module; that won't happen.
2001-02-27 21:51:47 +00:00
Fred Drake ddd802cbd7 Replace all the platform-specific TERMIOS modules with a portable version
based on the termios module.  The only added "feature" is the deprecation
warning it spits out.
2001-02-27 21:35:40 +00:00
Fred Drake 1191d0148f Get the needed constants from termios, not TERMIOS. 2001-02-27 21:23:31 +00:00
Fred Drake df48d14f44 Define the constants needed for working with these functions directly
in this module; no more need for TERMIOS.py.
2001-02-27 21:22:39 +00:00