comparison Python/errors.c @ 42793:61fb597917d1

Use unicode for much of errors.
author Neal Norwitz <nnorwitz@gmail.com>
date Fri, 24 Aug 2007 19:54:13 +0000
parents 0fcc18aba385
children 84618b2064c1
comparison
equal deleted inserted replaced
42790:6124b2ef6512 42793:61fb597917d1
348 348
349 349
350 PyObject * 350 PyObject *
351 PyErr_SetFromErrnoWithFilename(PyObject *exc, char *filename) 351 PyErr_SetFromErrnoWithFilename(PyObject *exc, char *filename)
352 { 352 {
353 PyObject *name = filename ? PyString_FromString(filename) : NULL; 353 PyObject *name = filename ? PyUnicode_FromString(filename) : NULL;
354 PyObject *result = PyErr_SetFromErrnoWithFilenameObject(exc, name); 354 PyObject *result = PyErr_SetFromErrnoWithFilenameObject(exc, name);
355 Py_XDECREF(name); 355 Py_XDECREF(name);
356 return result; 356 return result;
357 } 357 }
358 358
427 PyObject *PyErr_SetExcFromWindowsErrWithFilename( 427 PyObject *PyErr_SetExcFromWindowsErrWithFilename(
428 PyObject *exc, 428 PyObject *exc,
429 int ierr, 429 int ierr,
430 const char *filename) 430 const char *filename)
431 { 431 {
432 PyObject *name = filename ? PyString_FromString(filename) : NULL; 432 PyObject *name = filename ? PyUnicode_FromString(filename) : NULL;
433 PyObject *ret = PyErr_SetExcFromWindowsErrWithFilenameObject(exc, 433 PyObject *ret = PyErr_SetExcFromWindowsErrWithFilenameObject(exc,
434 ierr, 434 ierr,
435 name); 435 name);
436 Py_XDECREF(name); 436 Py_XDECREF(name);
437 return ret; 437 return ret;
466 } 466 }
467 PyObject *PyErr_SetFromWindowsErrWithFilename( 467 PyObject *PyErr_SetFromWindowsErrWithFilename(
468 int ierr, 468 int ierr,
469 const char *filename) 469 const char *filename)
470 { 470 {
471 PyObject *name = filename ? PyString_FromString(filename) : NULL; 471 PyObject *name = filename ? PyUnicode_FromString(filename) : NULL;
472 PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject( 472 PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
473 PyExc_WindowsError, 473 PyExc_WindowsError,
474 ierr, name); 474 ierr, name);
475 Py_XDECREF(name); 475 Py_XDECREF(name);
476 return result; 476 return result;
556 dict = mydict = PyDict_New(); 556 dict = mydict = PyDict_New();
557 if (dict == NULL) 557 if (dict == NULL)
558 goto failure; 558 goto failure;
559 } 559 }
560 if (PyDict_GetItemString(dict, "__module__") == NULL) { 560 if (PyDict_GetItemString(dict, "__module__") == NULL) {
561 modulename = PyString_FromStringAndSize(name, 561 modulename = PyUnicode_FromStringAndSize(name,
562 (Py_ssize_t)(dot-name)); 562 (Py_ssize_t)(dot-name));
563 if (modulename == NULL) 563 if (modulename == NULL)
564 goto failure; 564 goto failure;
565 if (PyDict_SetItemString(dict, "__module__", modulename) != 0) 565 if (PyDict_SetItemString(dict, "__module__", modulename) != 0)
566 goto failure; 566 goto failure;
608 608
609 moduleName = PyObject_GetAttrString(t, "__module__"); 609 moduleName = PyObject_GetAttrString(t, "__module__");
610 if (moduleName == NULL) 610 if (moduleName == NULL)
611 PyFile_WriteString("<unknown>", f); 611 PyFile_WriteString("<unknown>", f);
612 else { 612 else {
613 char* modstr = PyString_AsString(moduleName); 613 char* modstr = PyUnicode_AsString(moduleName);
614 if (modstr && 614 if (modstr &&
615 strcmp(modstr, "__builtin__") != 0) 615 strcmp(modstr, "__builtin__") != 0)
616 { 616 {
617 PyFile_WriteString(modstr, f); 617 PyFile_WriteString(modstr, f);
618 PyFile_WriteString(".", f); 618 PyFile_WriteString(".", f);
726 if (PyObject_SetAttrString(v, "lineno", tmp)) 726 if (PyObject_SetAttrString(v, "lineno", tmp))
727 PyErr_Clear(); 727 PyErr_Clear();
728 Py_DECREF(tmp); 728 Py_DECREF(tmp);
729 } 729 }
730 if (filename != NULL) { 730 if (filename != NULL) {
731 tmp = PyString_FromString(filename); 731 tmp = PyUnicode_FromString(filename);
732 if (tmp == NULL) 732 if (tmp == NULL)
733 PyErr_Clear(); 733 PyErr_Clear();
734 else { 734 else {
735 if (PyObject_SetAttrString(v, "filename", tmp)) 735 if (PyObject_SetAttrString(v, "filename", tmp))
736 PyErr_Clear(); 736 PyErr_Clear();
803 fclose(fp); 803 fclose(fp);
804 if (i == lineno) { 804 if (i == lineno) {
805 char *p = linebuf; 805 char *p = linebuf;
806 while (*p == ' ' || *p == '\t' || *p == '\014') 806 while (*p == ' ' || *p == '\t' || *p == '\014')
807 p++; 807 p++;
808 return PyString_FromString(p); 808 return PyUnicode_FromString(p);
809 } 809 }
810 return NULL; 810 return NULL;
811 } 811 }
812 812
813 #ifdef __cplusplus 813 #ifdef __cplusplus