summaryrefslogtreecommitdiff
path: root/src/libical-glib/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/libical-glib/tools')
-rw-r--r--src/libical-glib/tools/generator.c49
-rw-r--r--src/libical-glib/tools/generator.h13
-rw-r--r--src/libical-glib/tools/header-forward-declarations-template14
-rw-r--r--src/libical-glib/tools/header-header-template18
-rw-r--r--src/libical-glib/tools/header-template14
-rw-r--r--src/libical-glib/tools/source-template14
-rw-r--r--src/libical-glib/tools/xml-parser.c13
-rw-r--r--src/libical-glib/tools/xml-parser.h12
8 files changed, 49 insertions, 98 deletions
diff --git a/src/libical-glib/tools/generator.c b/src/libical-glib/tools/generator.c
index 609c9297..d1d3fc23 100644
--- a/src/libical-glib/tools/generator.c
+++ b/src/libical-glib/tools/generator.c
@@ -1,16 +1,7 @@
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software; you can redistribute it and/or modify
- * it under the terms of either:
- *
- * The LGPL as published by the Free Software Foundation, version
- * 2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
- *
- * Or:
- *
- * The Mozilla Public License Version 2.0. You may obtain a copy of
- * the License at https://www.mozilla.org/MPL/
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*/
#include "generator.h"
@@ -1575,13 +1566,39 @@ gchar *get_translator_for_return(Ret *ret)
return res;
}
+static gboolean parameter_is_out(Parameter *para)
+{
+ GList *link;
+ for (link = para->annotations; link; link = g_list_next(link)) {
+ if (g_strcmp0(link->data, "out") == 0 ||
+ g_strcmp0(link->data, "inout") == 0 ||
+ g_str_has_prefix(link->data, "out ")) {
+ break;
+ }
+ }
+
+ return link != NULL;
+}
+
static gboolean annotation_contains_nullable(GList *annotations) /* gchar * */
{
GList *link;
for (link = annotations; link; link = g_list_next(link)) {
- if (g_strcmp0(link->data, "allow-none") == 0 ||
- g_strcmp0(link->data, "nullable") == 0) {
+ if (g_strcmp0(link->data, "nullable") == 0) {
+ break;
+ }
+ }
+
+ return link != NULL;
+}
+
+static gboolean annotation_contains_optional(GList *annotations) /* gchar * */
+{
+ GList *link;
+
+ for (link = annotations; link; link = g_list_next(link)) {
+ if (g_strcmp0(link->data, "optional") == 0) {
break;
}
}
@@ -2033,6 +2050,7 @@ gchar *get_source_run_time_checkers(Method *method, const gchar *namespace)
gchar *defaultValue;
gchar *retTrueType;
guint namespace_len;
+ gboolean param_is_out;
g_return_val_if_fail(method != NULL, NULL);
g_return_val_if_fail(namespace != NULL && *namespace != '\0', NULL);
@@ -2095,7 +2113,10 @@ gchar *get_source_run_time_checkers(Method *method, const gchar *namespace)
(void)g_stpcpy(buffer + strlen(buffer), "\n");
}
- if (i != namespace_len && !annotation_contains_nullable(parameter->annotations)) {
+ param_is_out = parameter_is_out(parameter);
+ if (i != namespace_len && (
+ (!param_is_out && !annotation_contains_nullable(parameter->annotations)) ||
+ (param_is_out && !annotation_contains_optional(parameter->annotations)))) {
(void)g_stpcpy(buffer + strlen(buffer), "\t");
if (method->ret != NULL) {
(void)g_stpcpy(buffer + strlen(buffer), "g_return_val_if_fail (");
diff --git a/src/libical-glib/tools/generator.h b/src/libical-glib/tools/generator.h
index 4aa14693..31a4ea35 100644
--- a/src/libical-glib/tools/generator.h
+++ b/src/libical-glib/tools/generator.h
@@ -1,16 +1,7 @@
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software; you can redistribute it and/or modify
- * it under the terms of either:
- *
- * The LGPL as published by the Free Software Foundation, version
- * 2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
- *
- * Or:
- *
- * The Mozilla Public License Version 2.0. You may obtain a copy of
- * the License at https://www.mozilla.org/MPL/
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*/
#ifndef GENERATOR_H
diff --git a/src/libical-glib/tools/header-forward-declarations-template b/src/libical-glib/tools/header-forward-declarations-template
index 7ea06c29..95de7492 100644
--- a/src/libical-glib/tools/header-forward-declarations-template
+++ b/src/libical-glib/tools/header-forward-declarations-template
@@ -1,19 +1,9 @@
/* Generated file (by generator) */
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software: you can redistribute it and/or modify it
- * under the terms of version 2.1. of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*/
#if !defined (__LIBICAL_GLIB_H_INSIDE__) && !defined (LIBICAL_GLIB_COMPILATION)
diff --git a/src/libical-glib/tools/header-header-template b/src/libical-glib/tools/header-header-template
index 9dde6369..b19012c2 100644
--- a/src/libical-glib/tools/header-header-template
+++ b/src/libical-glib/tools/header-header-template
@@ -1,19 +1,9 @@
/* Generated file (by generator) */
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software: you can redistribute it and/or modify it
- * under the terms of version 2.1. of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*/
#ifndef LIBICAL_GLIB_H
@@ -21,10 +11,6 @@
#include <glib-object.h>
-#if !defined(LIBICAL_GLIB_UNSTABLE_API) && !defined(LIBICAL_GLIB_COMPILATION)
-#error "Define LIBICAL_GLIB_UNSTABLE_API, to indicate it's understood the libical-glib API is currently unstable"
-#endif
-
#define __LIBICAL_GLIB_H_INSIDE__
#include <libical-glib/i-cal-forward-declarations.h>
diff --git a/src/libical-glib/tools/header-template b/src/libical-glib/tools/header-template
index f4edf16f..a51c7331 100644
--- a/src/libical-glib/tools/header-template
+++ b/src/libical-glib/tools/header-template
@@ -1,19 +1,9 @@
/* Generated file (by generator) */
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software: you can redistribute it and/or modify it
- * under the terms of version 2.1. of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*/
#if !defined (__LIBICAL_GLIB_H_INSIDE__) && !defined (LIBICAL_GLIB_COMPILATION)
diff --git a/src/libical-glib/tools/source-template b/src/libical-glib/tools/source-template
index 8b71354e..4a354b2c 100644
--- a/src/libical-glib/tools/source-template
+++ b/src/libical-glib/tools/source-template
@@ -1,19 +1,9 @@
/* Generated file (by generator) */
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software: you can redistribute it and/or modify it
- * under the terms of version 2.1. of the GNU Lesser General Public License
- * as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library. If not, see <https://www.gnu.org/licenses/>.
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*/
#ifdef HAVE_CONFIG_H
diff --git a/src/libical-glib/tools/xml-parser.c b/src/libical-glib/tools/xml-parser.c
index a9cf2704..76e39b7f 100644
--- a/src/libical-glib/tools/xml-parser.c
+++ b/src/libical-glib/tools/xml-parser.c
@@ -1,16 +1,7 @@
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software; you can redistribute it and/or modify
- * it under the terms of either:
- *
- * The LGPL as published by the Free Software Foundation, version
- * 2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
- *
- * Or:
- *
- * The Mozilla Public License Version 2.0. You may obtain a copy of
- * the License at https://www.mozilla.org/MPL/
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*/
#include "xml-parser.h"
diff --git a/src/libical-glib/tools/xml-parser.h b/src/libical-glib/tools/xml-parser.h
index bccbb4d3..403c40c0 100644
--- a/src/libical-glib/tools/xml-parser.h
+++ b/src/libical-glib/tools/xml-parser.h
@@ -1,16 +1,8 @@
/*
- * Copyright (C) 2015 William Yu <williamyu@gnome.org>
+ * SPDX-FileCopyrightText: 2015 William Yu <williamyu@gnome.org>
*
- * This library is free software; you can redistribute it and/or modify
- * it under the terms of either:
+ * SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
*
- * The LGPL as published by the Free Software Foundation, version
- * 2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
- *
- * Or:
- *
- * The Mozilla Public License Version 2.0. You may obtain a copy of
- * the License at https://www.mozilla.org/MPL/
*/
#ifndef XML_PARSER_H