viest 4 éve
szülő
commit
c10cdc6503
4 módosított fájl, 22 hozzáadás és 11 törlés
  1. 1 1
      include/xlswriter.h
  2. 3 3
      kernel/common.c
  3. 17 7
      kernel/excel.c
  4. 1 0
      kernel/format.c

+ 1 - 1
include/xlswriter.h

@@ -220,6 +220,6 @@ void datetime_writer(lxw_datetime *datetime, zend_long row, zend_long columns, z
 
 lxw_error workbook_file(xls_resource_write_t *self);
 
-zend_string* str_pick_up(zend_string *left, char *right);
+zend_string* str_pick_up(zend_string *left, const char *right, size_t len);
 
 #endif

+ 3 - 3
kernel/common.c

@@ -33,16 +33,16 @@ void xls_file_path(zend_string *file_name, zval *dir_path, zval *file_path)
 /* }}} */
 
 /* {{{ */
-zend_string* str_pick_up(zend_string *left, char *right)
+zend_string* str_pick_up(zend_string *left, const char *right, size_t len)
 {
     zend_string *full = NULL;
 
     size_t _left_length = ZSTR_LEN(left);
-    size_t _extend_length = _left_length + strlen(right);
+    size_t _extend_length = _left_length + len;
 
     full = zend_string_extend(left, _extend_length, 0);
 
-    memcpy(ZSTR_VAL(full) + _left_length, right, strlen(right));
+    memcpy(ZSTR_VAL(full) + _left_length, right, len);
 
     ZSTR_VAL(full)[_extend_length] = '\0';
 

+ 17 - 7
kernel/excel.c

@@ -964,28 +964,38 @@ PHP_METHOD(vtiful_xls, stringFromColumnIndex)
             Z_PARAM_LONG(index)
     ZEND_PARSE_PARAMETERS_END();
 
+    char one[1];
+
     if (index < 26) {
         current = index + 65;
-        result  = zend_string_init((char *)(&current), 1, 0);
-        RETURN_STR(result);
+        one[0] = current;
+
+        ZVAL_STRINGL(return_value, one, 1);
+        return;
     }
 
     if (index < 702) {
         current = index / 26 + 64;
-        result  = zend_string_init((char *)(&current), 1, 0);
+        one[0]  = current;
+        result  = zend_string_init(one, 1, 0);
 
         current = index % 26 + 65;
-        RETURN_STR(str_pick_up(result, (char *)(&current)));
+        one[0]  = current;
+        ZVAL_STR(return_value, str_pick_up(result, one, 1));
+        return;
     }
 
     current = (index - 26) / 676 + 64;
-    result  = zend_string_init((char *)(&current), 1, 0);
+    one[0]  = current;
+    result  = zend_string_init(one, 1, 0);
 
     current = ((index - 26) % 676) / 26 + 65;
-    result  = str_pick_up(result, (char *)(&current));
+    one[0]  = current;
+    result  = str_pick_up(result, one, 1);
 
     current = index % 26 + 65;
-    RETURN_STR(str_pick_up(result, (char *)(&current)));
+    one[0]  = current;
+    ZVAL_STR(return_value, str_pick_up(result, one, 1));
 }
 /* }}} */
 

+ 1 - 0
kernel/format.c

@@ -459,6 +459,7 @@ VTIFUL_STARTUP_FUNCTION(format) {
     REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_GRAY_125",         LXW_PATTERN_GRAY_125)
     REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "PATTERN_GRAY_0625",        LXW_PATTERN_GRAY_0625)
 
+    REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_NONE",                 LXW_BORDER_NONE)
     REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_THIN",                 LXW_BORDER_THIN)
     REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_MEDIUM",               LXW_BORDER_MEDIUM)
     REGISTER_CLASS_CONST_LONG(vtiful_format_ce, "BORDER_DASHED",               LXW_BORDER_DASHED)