Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
9670543a
Commit
9670543a
authored
Jun 09, 2013
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Plain Diff
Issue #18038: SyntaxError raised during compilation sources with illegal
encoding now always contains an encoding name.
parents
7dc4c033
3af14aab
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
7 deletions
+28
-7
Lib/test/test_pep263.py
Lib/test/test_pep263.py
+18
-0
Misc/NEWS
Misc/NEWS
+3
-0
Parser/tokenizer.c
Parser/tokenizer.c
+7
-7
No files found.
Lib/test/test_pep263.py
View file @
9670543a
...
...
@@ -55,6 +55,24 @@ class PEP263Test(unittest.TestCase):
# two bytes in common with the UTF-8 BOM
self
.
assertRaises
(
SyntaxError
,
eval
,
b'
\
xef
\
xbb
\
x20
'
)
def
test_error_message
(
self
):
compile
(
b'# -*- coding: iso-8859-15 -*-
\
n
'
,
'dummy'
,
'exec'
)
compile
(
b'
\
xef
\
xbb
\
xbf
\
n
'
,
'dummy'
,
'exec'
)
compile
(
b'
\
xef
\
xbb
\
xbf
# -*- coding: utf-8 -*-
\
n
'
,
'dummy'
,
'exec'
)
with
self
.
assertRaisesRegexp
(
SyntaxError
,
'fake'
):
compile
(
b'# -*- coding: fake -*-
\
n
'
,
'dummy'
,
'exec'
)
with
self
.
assertRaisesRegexp
(
SyntaxError
,
'iso-8859-15'
):
compile
(
b'
\
xef
\
xbb
\
xbf
# -*- coding: iso-8859-15 -*-
\
n
'
,
'dummy'
,
'exec'
)
with
self
.
assertRaisesRegexp
(
SyntaxError
,
'BOM'
):
compile
(
b'
\
xef
\
xbb
\
xbf
# -*- coding: iso-8859-15 -*-
\
n
'
,
'dummy'
,
'exec'
)
with
self
.
assertRaisesRegexp
(
SyntaxError
,
'fake'
):
compile
(
b'
\
xef
\
xbb
\
xbf
# -*- coding: fake -*-
\
n
'
,
'dummy'
,
'exec'
)
with
self
.
assertRaisesRegexp
(
SyntaxError
,
'BOM'
):
compile
(
b'
\
xef
\
xbb
\
xbf
# -*- coding: fake -*-
\
n
'
,
'dummy'
,
'exec'
)
def
test_main
():
support
.
run_unittest
(
PEP263Test
)
...
...
Misc/NEWS
View file @
9670543a
...
...
@@ -10,6 +10,9 @@ What's New in Python 3.4.0 Alpha 1?
Core and Builtins
-----------------
- Issue #18038: SyntaxError raised during compilation sources with illegal
encoding now always contains an encoding name.
- Issue #17931: Resolve confusion on Windows between pids and process
handles.
...
...
Parser/tokenizer.c
View file @
9670543a
...
...
@@ -291,20 +291,20 @@ check_coding_spec(const char* line, Py_ssize_t size, struct tok_state *tok,
tok
->
encoding
=
cs
;
tok
->
decoding_state
=
STATE_NORMAL
;
}
else
else
{
PyErr_Format
(
PyExc_SyntaxError
,
"encoding problem: %s"
,
cs
);
PyMem_FREE
(
cs
);
}
}
}
else
{
/* then, compare cs with BOM */
r
=
(
strcmp
(
tok
->
encoding
,
cs
)
==
0
);
if
(
!
r
)
PyErr_Format
(
PyExc_SyntaxError
,
"encoding problem: %s with BOM"
,
cs
);
PyMem_FREE
(
cs
);
}
}
if
(
!
r
)
{
cs
=
tok
->
encoding
;
if
(
!
cs
)
cs
=
"with BOM"
;
PyErr_Format
(
PyExc_SyntaxError
,
"encoding problem: %s"
,
cs
);
}
return
r
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment