From 974e0ecdf34d6bb457344db55897fb5f6e9daff9 Mon Sep 17 00:00:00 2001 From: Vanilla Hsu Date: Thu, 1 May 2008 11:11:10 +0800 Subject: [PATCH] 1: add new constant type. 2: return false when qrcode == NULL. 3: use different function when mode = 8bit. --- README | 10 +++++++--- qrencode.c | 18 ++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/README b/README index 2056027..a9a83d2 100644 --- a/README +++ b/README @@ -4,15 +4,19 @@ only 2 function to generate qr code. $qr = qr_encode ('test for qrcode'); -qr_save ($qr, '1.png'); +if (is_resource ($qr)) + qr_save ($qr, '1.png'); or you can output direct to stdout. $qr = qr_encode ('test for qrcode'); -header ("Content-type: image/PNG"); -qr_save ($qr); +if (is_resource ($qr)) +{ + header ("Content-type: image/PNG"); + qr_save ($qr); +} resource = qr_encode (string $text, [ int $version, int $mode, int $casesensitive]); diff --git a/qrencode.c b/qrencode.c index d61e127..2164844 100644 --- a/qrencode.c +++ b/qrencode.c @@ -11,10 +11,6 @@ +----------------------------------------------------------------------+ */ -/* - * $Header: /home/ncvs/php_extension/qrencode/qrencode.c,v 1.2 2008/01/24 02:44:41 vanilla Exp $ - */ - /** * $file qrencode.c * @brief source file of php qrencode extension. @@ -58,7 +54,7 @@ zend_module_entry qrencode_module_entry = { NULL, PHP_MINFO(qrencode), #if ZEND_MODULE_API_NO >= 20010901 - "$Revision: 1.2 $", + "0.3", #endif STANDARD_MODULE_PROPERTIES }; @@ -71,6 +67,7 @@ PHP_MINIT_FUNCTION(qrencode) { le_qr = zend_register_list_destructors_ex(qr_dtor, NULL, "qr", module_number); + REGISTER_LONG_CONSTANT ("QR_MODE_NUL", QR_MODE_NUL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT ("QR_MODE_NUM", QR_MODE_NUM, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT ("QR_MODE_AN", QR_MODE_AN, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT ("QR_MODE_8", QR_MODE_8, CONST_CS | CONST_PERSISTENT); @@ -115,7 +112,16 @@ PHP_FUNCTION(qr_encode) RETURN_FALSE; qr = (php_qrcode *) emalloc (sizeof (php_qrcode)); - qr->c = QRcode_encodeString(text, version, level, mode, casesensitive); + if (mode == QR_MODE_8) + qr->c = QRcode_encodeString8bit(text, version, level); + else + qr->c = QRcode_encodeString(text, version, level, mode, casesensitive); + + if (qr->c == NULL) + { + efree (qr); + RETURN_FALSE; + } ZEND_REGISTER_RESOURCE (return_value, qr, le_qr); }