A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/python/cpython/commit/d9b8f138b7df3b455b54653ca59f491b4840d6fa below:

Replace snprintf with Python unicode formatti… · python/cpython@d9b8f13 · GitHub

@@ -463,58 +463,47 @@ is_literal_char(unsigned char c)

463 463

static PyObject *

464 464

PyCArg_repr(PyCArgObject *self)

465 465

{

466 -

char buffer[256];

467 466

switch(self->tag) {

468 467

case 'b':

469 468

case 'B':

470 -

sprintf(buffer, "<cparam '%c' (%d)>",

469 +

return PyUnicode_FromFormat("<cparam '%c' (%d)>",

471 470

self->tag, self->value.b);

472 -

break;

473 471

case 'h':

474 472

case 'H':

475 -

sprintf(buffer, "<cparam '%c' (%d)>",

473 +

return PyUnicode_FromFormat("<cparam '%c' (%d)>",

476 474

self->tag, self->value.h);

477 -

break;

478 475

case 'i':

479 476

case 'I':

480 -

sprintf(buffer, "<cparam '%c' (%d)>",

477 +

return PyUnicode_FromFormat("<cparam '%c' (%d)>",

481 478

self->tag, self->value.i);

482 -

break;

483 479

case 'l':

484 480

case 'L':

485 -

sprintf(buffer, "<cparam '%c' (%ld)>",

481 +

return PyUnicode_FromFormat("<cparam '%c' (%ld)>",

486 482

self->tag, self->value.l);

487 -

break;

488 483 489 484

case 'q':

490 485

case 'Q':

491 -

sprintf(buffer,

492 -

#ifdef MS_WIN32

493 -

"<cparam '%c' (%I64d)>",

494 -

#else

495 -

"<cparam '%c' (%lld)>",

496 -

#endif

486 +

return PyUnicode_FromFormat("<cparam '%c' (%lld)>",

497 487

self->tag, self->value.q);

498 -

break;

499 488

case 'd':

500 -

sprintf(buffer, "<cparam '%c' (%f)>",

501 -

self->tag, self->value.d);

502 -

break;

503 -

case 'f':

504 -

sprintf(buffer, "<cparam '%c' (%f)>",

505 -

self->tag, self->value.f);

506 -

break;

507 - 489 +

case 'f': {

490 +

PyObject *f = PyFloat_FromDouble((self->tag == 'f') ? self->value.f : self->value.d);

491 +

if (f == NULL) {

492 +

return NULL;

493 +

}

494 +

PyObject *result = PyUnicode_FromFormat("<cparam '%c' (%R)>", self->tag, f);

495 +

Py_DECREF(f);

496 +

return result;

497 +

}

508 498

case 'c':

509 499

if (is_literal_char((unsigned char)self->value.c)) {

510 -

sprintf(buffer, "<cparam '%c' ('%c')>",

500 +

return PyUnicode_FromFormat("<cparam '%c' ('%c')>",

511 501

self->tag, self->value.c);

512 502

}

513 503

else {

514 -

sprintf(buffer, "<cparam '%c' ('\\x%02x')>",

504 +

return PyUnicode_FromFormat("<cparam '%c' ('\\x%02x')>",

515 505

self->tag, (unsigned char)self->value.c);

516 506

}

517 -

break;

518 507 519 508

/* Hm, are these 'z' and 'Z' codes useful at all?

520 509

Shouldn't they be replaced by the functionality of c_string

@@ -523,22 +512,20 @@ PyCArg_repr(PyCArgObject *self)

523 512

case 'z':

524 513

case 'Z':

525 514

case 'P':

526 -

sprintf(buffer, "<cparam '%c' (%p)>",

515 +

return PyUnicode_FromFormat("<cparam '%c' (%p)>",

527 516

self->tag, self->value.p);

528 517

break;

529 518 530 519

default:

531 520

if (is_literal_char((unsigned char)self->tag)) {

532 -

sprintf(buffer, "<cparam '%c' at %p>",

533 -

(unsigned char)self->tag, self);

521 +

return PyUnicode_FromFormat("<cparam '%c' at %p>",

522 +

(unsigned char)self->tag, (void *)self);

534 523

}

535 524

else {

536 -

sprintf(buffer, "<cparam 0x%02x at %p>",

537 -

(unsigned char)self->tag, self);

525 +

return PyUnicode_FromFormat("<cparam 0x%02x at %p>",

526 +

(unsigned char)self->tag, (void *)self);

538 527

}

539 -

break;

540 528

}

541 -

return PyUnicode_FromString(buffer);

542 529

}

543 530 544 531

static PyMemberDef PyCArgType_members[] = {


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4