A RetroSearch Logo

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

Search Query:

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

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

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

487 487

static PyObject *

488 488

PyCArg_repr(PyCArgObject *self)

489 489

{

490 -

char buffer[256];

491 490

switch(self->tag) {

492 491

case 'b':

493 492

case 'B':

494 -

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

493 +

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

495 494

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

496 -

break;

497 495

case 'h':

498 496

case 'H':

499 -

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

497 +

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

500 498

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

501 -

break;

502 499

case 'i':

503 500

case 'I':

504 -

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

501 +

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

505 502

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

506 -

break;

507 503

case 'l':

508 504

case 'L':

509 -

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

505 +

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

510 506

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

511 -

break;

512 507 513 508

case 'q':

514 509

case 'Q':

515 -

sprintf(buffer,

516 -

#ifdef MS_WIN32

517 -

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

518 -

#else

519 -

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

520 -

#endif

510 +

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

521 511

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

522 -

break;

523 512

case 'd':

524 -

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

525 -

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

526 -

break;

527 -

case 'f':

528 -

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

529 -

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

530 -

break;

531 - 513 +

case 'f': {

514 +

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

515 +

if (f == NULL) {

516 +

return NULL;

517 +

}

518 +

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

519 +

Py_DECREF(f);

520 +

return result;

521 +

}

532 522

case 'c':

533 523

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

534 -

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

524 +

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

535 525

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

536 526

}

537 527

else {

538 -

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

528 +

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

539 529

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

540 530

}

541 -

break;

542 531 543 532

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

544 533

Shouldn't they be replaced by the functionality of c_string

@@ -547,22 +536,20 @@ PyCArg_repr(PyCArgObject *self)

547 536

case 'z':

548 537

case 'Z':

549 538

case 'P':

550 -

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

539 +

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

551 540

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

552 541

break;

553 542 554 543

default:

555 544

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

556 -

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

545 +

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

557 546

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

558 547

}

559 548

else {

560 -

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

549 +

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

561 550

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

562 551

}

563 -

break;

564 552

}

565 -

return PyUnicode_FromString(buffer);

566 553

}

567 554 568 555

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