Ignore BOM in batch files (Fixes #2450)

This commit is contained in:
Philipp Hagemeister 2014-02-25 01:43:17 +01:00
parent f6acbdecf4
commit 62e609ab77
3 changed files with 34 additions and 7 deletions

View file

@ -1,6 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import contextlib
import ctypes
import datetime
import email.utils
@ -1245,3 +1246,19 @@ except TypeError:
else:
struct_pack = struct.pack
struct_unpack = struct.unpack
def read_batch_urls(batch_fd):
def fixup(url):
if not isinstance(url, compat_str):
url = url.decode('utf-8', 'replace')
BOM_UTF8 = u'\xef\xbb\xbf'
if url.startswith(BOM_UTF8):
url = url[len(BOM_UTF8):]
url = url.strip()
if url.startswith(('#', ';', ']')):
return False
return url
with contextlib.closing(batch_fd) as fd:
return [url for url in map(fixup, fd) if url]