Skip to content

Commit 79a2786

Browse files
committed
C doesn't allow zero length arrays
So make NULL member for functions with no kwargs
1 parent e13a7a5 commit 79a2786

3 files changed

Lines changed: 8 additions & 7 deletions

File tree

src/apsw.docstrings

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -798,7 +798,7 @@
798798
"\n" \
799799
"Calls: `sqlite3changegroup_delete <https://sqlite.org/session/sqlite3changegroup_delete.html>`__\n"
800800

801-
#define ChangesetBuilder_close_KWNAMES
801+
#define ChangesetBuilder_close_KWNAMES NULL
802802
#define ChangesetBuilder_close_USAGE "ChangesetBuilder.close() -> None"
803803

804804
#define ChangesetBuilder_close_CHECK do { \
@@ -810,7 +810,7 @@
810810
"\n" \
811811
"Calls: `sqlite3changegroup_new <https://sqlite.org/session/sqlite3changegroup_new.html>`__\n"
812812

813-
#define ChangesetBuilder_init_KWNAMES
813+
#define ChangesetBuilder_init_KWNAMES NULL
814814
#define ChangesetBuilder_init_USAGE "ChangesetBuilder.__init__()"
815815

816816
#define ChangesetBuilder_init_CHECK do { \
@@ -822,7 +822,7 @@
822822
"\n" \
823823
"Calls: `sqlite3changegroup_output <https://sqlite.org/session/sqlite3changegroup_output.html>`__\n"
824824

825-
#define ChangesetBuilder_output_KWNAMES
825+
#define ChangesetBuilder_output_KWNAMES NULL
826826
#define ChangesetBuilder_output_USAGE "ChangesetBuilder.output() -> bytes"
827827

828828
#define ChangesetBuilder_output_CHECK do { \
@@ -3606,7 +3606,7 @@
36063606
"\n" \
36073607
"Calls: `sqlite3rebaser_create <https://sqlite.org/session/sqlite3rebaser_create.html>`__\n"
36083608

3609-
#define Rebaser_init_KWNAMES
3609+
#define Rebaser_init_KWNAMES NULL
36103610
#define Rebaser_init_USAGE "Rebaser.__init__()"
36113611

36123612
#define Rebaser_init_CHECK do { \
@@ -3696,7 +3696,7 @@
36963696
"\n" \
36973697
"Calls: `sqlite3session_delete <https://sqlite.org/session/sqlite3session_delete.html>`__\n"
36983698

3699-
#define Session_close_KWNAMES
3699+
#define Session_close_KWNAMES NULL
37003700
#define Session_close_USAGE "Session.close() -> None"
37013701

37023702
#define Session_close_CHECK do { \

src/argparse.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ ARG_WHICH_KEYWORD(PyObject *item, const char *kwlist[], size_t n_kwlist, const c
2323
size_t cmp;
2424
int res = -1;
2525
if (n)
26-
for (cmp = 0; cmp < n_kwlist; cmp++)
26+
for (cmp = 0; cmp < n_kwlist && kwlist[cmp]; cmp++)
2727
{
2828
if (0 == strcmp(n, kwlist[cmp]))
2929
{

tools/gendocstrings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,8 @@ def do_argparse(item):
676676
code = "\n".join(line for line in code.split("\n") if line.strip())
677677

678678
res.insert(0, f"""#define { item['symbol'] }_USAGE "{ get_usage(item) }"\n""")
679-
n = ", ".join(f'"{ a }"' for a in kwlist)
679+
n = ", ".join(f'"{ a }"' for a in kwlist) if kwlist else "NULL"
680+
680681
res.insert(0, f"""#define { item['symbol'] }_KWNAMES { n }""")
681682

682683
check_and_update(f"{ item['symbol'] }_CHECK", code)

0 commit comments

Comments
 (0)