222 try: |
222 try: |
223 with open(filename, 'rb') as f: |
223 with open(filename, 'rb') as f: |
224 # read the first and second line |
224 # read the first and second line |
225 text = f.readline() |
225 text = f.readline() |
226 text = "{0}{1}".format(text, f.readline()) |
226 text = "{0}{1}".format(text, f.readline()) |
227 except IOError: |
227 except OSError: |
228 self.__coding = default |
228 self.__coding = default |
229 return |
229 return |
230 |
230 |
231 for line in text.splitlines(): |
231 for line in text.splitlines(): |
232 m = self.coding_re.search(line) |
232 m = self.coding_re.search(line) |
1167 if AsyncPendingWrite(self.errorstream): |
1167 if AsyncPendingWrite(self.errorstream): |
1168 wrdy.append(self.errorstream) |
1168 wrdy.append(self.errorstream) |
1169 |
1169 |
1170 try: |
1170 try: |
1171 rrdy, wrdy, xrdy = select.select([self.readstream], wrdy, []) |
1171 rrdy, wrdy, xrdy = select.select([self.readstream], wrdy, []) |
1172 except (select.error, KeyboardInterrupt, socket.error): |
1172 except (KeyboardInterrupt, OSError): |
1173 selectErrors += 1 |
1173 selectErrors += 1 |
1174 if selectErrors <= 10: # arbitrarily selected |
1174 if selectErrors <= 10: # arbitrarily selected |
1175 # just carry on |
1175 # just carry on |
1176 continue |
1176 continue |
1177 else: |
1177 else: |
1210 wrdy.append(self.errorstream) |
1210 wrdy.append(self.errorstream) |
1211 |
1211 |
1212 # immediate return if nothing is ready. |
1212 # immediate return if nothing is ready. |
1213 try: |
1213 try: |
1214 rrdy, wrdy, xrdy = select.select([self.readstream], wrdy, [], 0) |
1214 rrdy, wrdy, xrdy = select.select([self.readstream], wrdy, [], 0) |
1215 except (select.error, KeyboardInterrupt, socket.error): |
1215 except (KeyboardInterrupt, OSError): |
1216 return |
1216 return |
1217 |
1217 |
1218 if self.readstream in rrdy: |
1218 if self.readstream in rrdy: |
1219 self.readReady(self.readstream) |
1219 self.readReady(self.readstream) |
1220 |
1220 |