A RetroSearch Logo

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

Search Query:

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

Replace snprintf with Python unicode formatting in … · python/cpython@c347cbe · GitHub

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

489 489

static PyObject *

490 490

PyCArg_repr(PyCArgObject *self)

491 491

{

492 -

char buffer[256];

493 492

switch(self->tag) {

494 493

case 'b':

495 494

case 'B':

496 -

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

495 +

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

497 496

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

498 -

break;

499 497

case 'h':

500 498

case 'H':

501 -

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

499 +

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

502 500

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

503 -

break;

504 501

case 'i':

505 502

case 'I':

506 -

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

503 +

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

507 504

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

508 -

break;

509 505

case 'l':

510 506

case 'L':

511 -

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

507 +

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

512 508

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

513 -

break;

514 509 515 510

case 'q':

516 511

case 'Q':

517 -

sprintf(buffer,

518 -

#ifdef MS_WIN32

519 -

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

520 -

#else

521 -

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

522 -

#endif

512 +

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

523 513

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

524 -

break;

525 514

case 'd':

526 -

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

527 -

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

528 -

break;

529 -

case 'f':

530 -

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

531 -

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

532 -

break;

533 - 515 +

case 'f': {

516 +

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

517 +

if (f == NULL) {

518 +

return NULL;

519 +

}

520 +

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

521 +

Py_DECREF(f);

522 +

return result;

523 +

}

534 524

case 'c':

535 525

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

536 -

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

526 +

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

537 527

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

538 528

}

539 529

else {

540 -

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

530 +

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

541 531

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

542 532

}

543 -

break;

544 533 545 534

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

546 535

Shouldn't they be replaced by the functionality of c_string

@@ -549,22 +538,20 @@ PyCArg_repr(PyCArgObject *self)

549 538

case 'z':

550 539

case 'Z':

551 540

case 'P':

552 -

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

541 +

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

553 542

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

554 543

break;

555 544 556 545

default:

557 546

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

558 -

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

547 +

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

559 548

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

560 549

}

561 550

else {

562 -

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

551 +

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

563 552

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

564 553

}

565 -

break;

566 554

}

567 -

return PyUnicode_FromString(buffer);

568 555

}

569 556 570 557

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