summaryrefslogtreecommitdiff
path: root/src/NaturalCollate.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2016-08-20 15:09:31 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2016-08-20 15:09:31 +0200
commit143bfc9f801c84428074312d661f8e08803df83b (patch)
tree59a8a447529bd9ce3807aa8bacef861dc5aafd70 /src/NaturalCollate.c
parent29a7aef998e975b42401cfa96d1b750d91eadf06 (diff)
Imported Upstream version 0.23.5upstream/0.23.5
Diffstat (limited to 'src/NaturalCollate.c')
-rw-r--r--src/NaturalCollate.c801
1 files changed, 801 insertions, 0 deletions
diff --git a/src/NaturalCollate.c b/src/NaturalCollate.c
new file mode 100644
index 0000000..35b129c
--- /dev/null
+++ b/src/NaturalCollate.c
@@ -0,0 +1,801 @@
+/* NaturalCollate.c generated by valac 0.32.1, the Vala compiler
+ * generated from NaturalCollate.vala, do not modify */
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define _g_free0(var) (var = (g_free (var), NULL))
+#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
+#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
+#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
+
+
+
+#define NATURAL_COLLATE_SUPERDIGIT ((gunichar) ':')
+#define NATURAL_COLLATE_NUM_SENTINEL ((gunichar) 0x2)
+#define NATURAL_COLLATE_COLLATION_SENTINEL "\x01\x01\x01"
+gint natural_collate_read_number (gchar* s, gint* byte_index);
+gint natural_collate_compare (const gchar* str1, const gchar* str2);
+gchar* natural_collate_collate_key (gchar* str);
+
+
+static gunichar string_get_char (const gchar* self, glong index) {
+ gunichar result = 0U;
+ glong _tmp0_ = 0L;
+ gunichar _tmp1_ = 0U;
+#line 1116 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0U);
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = index;
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_utf8_get_char (((gchar*) self) + _tmp0_);
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_;
+#line 1117 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 41 "NaturalCollate.c"
+}
+
+
+static gint string_index_of_nth_char (const gchar* self, glong c) {
+ gint result = 0;
+ glong _tmp0_ = 0L;
+ gchar* _tmp1_ = NULL;
+#line 1136 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, 0);
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = c;
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = g_utf8_offset_to_pointer (self, _tmp0_);
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (gint) (_tmp1_ - ((gchar*) self));
+#line 1137 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 59 "NaturalCollate.c"
+}
+
+
+static glong string_strnlen (gchar* str, glong maxlen) {
+ glong result = 0L;
+ gchar* end = NULL;
+ gchar* _tmp0_ = NULL;
+ glong _tmp1_ = 0L;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = str;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = maxlen;
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = memchr (_tmp0_, 0, (gsize) _tmp1_);
+#line 1295 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ end = _tmp2_;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = end;
+#line 1296 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp3_ == NULL) {
+#line 82 "NaturalCollate.c"
+ glong _tmp4_ = 0L;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = maxlen;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp4_;
+#line 1297 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 90 "NaturalCollate.c"
+ } else {
+ gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = end;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = str;
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = (glong) (_tmp5_ - _tmp6_);
+#line 1299 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 102 "NaturalCollate.c"
+ }
+}
+
+
+static gchar* string_substring (const gchar* self, glong offset, glong len) {
+ gchar* result = NULL;
+ glong string_length = 0L;
+ gboolean _tmp0_ = FALSE;
+ glong _tmp1_ = 0L;
+ glong _tmp8_ = 0L;
+ glong _tmp14_ = 0L;
+ glong _tmp17_ = 0L;
+ glong _tmp18_ = 0L;
+ glong _tmp19_ = 0L;
+ glong _tmp20_ = 0L;
+ glong _tmp21_ = 0L;
+ gchar* _tmp22_ = NULL;
+#line 1306 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, NULL);
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = offset;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp1_ >= ((glong) 0)) {
+#line 126 "NaturalCollate.c"
+ glong _tmp2_ = 0L;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp2_ = len;
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = _tmp2_ >= ((glong) 0);
+#line 132 "NaturalCollate.c"
+ } else {
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = FALSE;
+#line 136 "NaturalCollate.c"
+ }
+#line 1308 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp0_) {
+#line 140 "NaturalCollate.c"
+ glong _tmp3_ = 0L;
+ glong _tmp4_ = 0L;
+ glong _tmp5_ = 0L;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp3_ = offset;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp4_ = len;
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp5_ = string_strnlen ((gchar*) self, _tmp3_ + _tmp4_);
+#line 1310 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = _tmp5_;
+#line 152 "NaturalCollate.c"
+ } else {
+ gint _tmp6_ = 0;
+ gint _tmp7_ = 0;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp6_ = strlen (self);
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp7_ = _tmp6_;
+#line 1312 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ string_length = (glong) _tmp7_;
+#line 162 "NaturalCollate.c"
+ }
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp8_ = offset;
+#line 1315 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp8_ < ((glong) 0)) {
+#line 168 "NaturalCollate.c"
+ glong _tmp9_ = 0L;
+ glong _tmp10_ = 0L;
+ glong _tmp11_ = 0L;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp9_ = string_length;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp10_ = offset;
+#line 1316 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ offset = _tmp9_ + _tmp10_;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp11_ = offset;
+#line 1317 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp11_ >= ((glong) 0), NULL);
+#line 182 "NaturalCollate.c"
+ } else {
+ glong _tmp12_ = 0L;
+ glong _tmp13_ = 0L;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp12_ = offset;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp13_ = string_length;
+#line 1319 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (_tmp12_ <= _tmp13_, NULL);
+#line 192 "NaturalCollate.c"
+ }
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp14_ = len;
+#line 1321 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ if (_tmp14_ < ((glong) 0)) {
+#line 198 "NaturalCollate.c"
+ glong _tmp15_ = 0L;
+ glong _tmp16_ = 0L;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp15_ = string_length;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp16_ = offset;
+#line 1322 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ len = _tmp15_ - _tmp16_;
+#line 207 "NaturalCollate.c"
+ }
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp17_ = offset;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp18_ = len;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp19_ = string_length;
+#line 1324 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail ((_tmp17_ + _tmp18_) <= _tmp19_, NULL);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp20_ = offset;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp21_ = len;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp22_ = g_strndup (((gchar*) self) + _tmp20_, (gsize) _tmp21_);
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp22_;
+#line 1325 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 227 "NaturalCollate.c"
+}
+
+
+gint natural_collate_read_number (gchar* s, gint* byte_index) {
+ gint result = 0;
+ gint number = 0;
+#line 23 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (s != NULL, 0);
+#line 31 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = 0;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 240 "NaturalCollate.c"
+ gboolean _tmp0_ = FALSE;
+ const gchar* _tmp1_ = NULL;
+ gint _tmp2_ = 0;
+ gint _tmp3_ = 0;
+ gint _tmp7_ = 0;
+ gint _tmp8_ = 0;
+ const gchar* _tmp9_ = NULL;
+ gunichar _tmp10_ = 0U;
+ gint _tmp11_ = 0;
+ gint second_char = 0;
+ const gchar* _tmp12_ = NULL;
+ gint _tmp13_ = 0;
+ const gchar* _tmp14_ = NULL;
+ gint _tmp15_ = 0;
+ gchar* _tmp16_ = NULL;
+ gint _tmp17_ = 0;
+ gint _tmp18_ = 0;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp1_ = s;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp2_ = strlen (_tmp1_);
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp3_ = _tmp2_;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (_tmp3_ != 0) {
+#line 266 "NaturalCollate.c"
+ const gchar* _tmp4_ = NULL;
+ gunichar _tmp5_ = 0U;
+ gboolean _tmp6_ = FALSE;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp4_ = s;
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp5_ = string_get_char (_tmp4_, (glong) 0);
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp6_ = g_unichar_isdigit (_tmp5_);
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = _tmp6_;
+#line 278 "NaturalCollate.c"
+ } else {
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = FALSE;
+#line 282 "NaturalCollate.c"
+ }
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!_tmp0_) {
+#line 33 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 288 "NaturalCollate.c"
+ }
+#line 34 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp7_ = number;
+#line 34 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = _tmp7_ * 10;
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp8_ = number;
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp9_ = s;
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp10_ = string_get_char (_tmp9_, (glong) 0);
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp11_ = g_unichar_digit_value (_tmp10_);
+#line 35 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = _tmp8_ + _tmp11_;
+#line 36 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp12_ = s;
+#line 36 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp13_ = string_index_of_nth_char (_tmp12_, (glong) 1);
+#line 36 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ second_char = _tmp13_;
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp14_ = s;
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp15_ = second_char;
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp16_ = string_substring (_tmp14_, (glong) _tmp15_, (glong) -1);
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (s);
+#line 37 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ s = _tmp16_;
+#line 38 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp17_ = *byte_index;
+#line 38 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp18_ = second_char;
+#line 38 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ *byte_index = _tmp17_ + _tmp18_;
+#line 326 "NaturalCollate.c"
+ }
+#line 40 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ result = number;
+#line 40 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (s);
+#line 40 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ return result;
+#line 334 "NaturalCollate.c"
+}
+
+
+gint natural_collate_compare (const gchar* str1, const gchar* str2) {
+ gint result = 0;
+ GCompareFunc _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gchar* _tmp3_ = NULL;
+ gchar* _tmp4_ = NULL;
+ const gchar* _tmp5_ = NULL;
+ gchar* _tmp6_ = NULL;
+ gchar* _tmp7_ = NULL;
+ gchar* _tmp8_ = NULL;
+ gint _tmp9_ = 0;
+ gint _tmp10_ = 0;
+#line 43 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (str1 != NULL, 0);
+#line 43 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (str2 != NULL, 0);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = g_strcmp0;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp1_ = str1;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp2_ = g_strdup (_tmp1_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp3_ = natural_collate_collate_key (_tmp2_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp4_ = _tmp3_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp5_ = str2;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp6_ = g_strdup (_tmp5_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp7_ = natural_collate_collate_key (_tmp6_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp8_ = _tmp7_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp9_ = _tmp0_ (_tmp4_, _tmp8_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp10_ = _tmp9_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp8_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp4_);
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ result = _tmp10_;
+#line 44 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ return result;
+#line 385 "NaturalCollate.c"
+}
+
+
+static gboolean string_contains (const gchar* self, const gchar* needle) {
+ gboolean result = FALSE;
+ const gchar* _tmp0_ = NULL;
+ gchar* _tmp1_ = NULL;
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (self != NULL, FALSE);
+#line 1376 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_return_val_if_fail (needle != NULL, FALSE);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = needle;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = strstr ((gchar*) self, (gchar*) _tmp0_);
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = _tmp1_ != NULL;
+#line 1377 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 405 "NaturalCollate.c"
+}
+
+
+static gchar* g_unichar_to_string (gunichar self) {
+ gchar* result = NULL;
+ gchar* str = NULL;
+ gchar* _tmp0_ = NULL;
+ const gchar* _tmp1_ = NULL;
+#line 941 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp0_ = g_new0 (gchar, 7);
+#line 941 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ str = (gchar*) _tmp0_;
+#line 942 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ _tmp1_ = str;
+#line 942 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ g_unichar_to_utf8 (self, _tmp1_);
+#line 943 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ result = str;
+#line 943 "/usr/share/vala-0.32/vapi/glib-2.0.vapi"
+ return result;
+#line 426 "NaturalCollate.c"
+}
+
+
+gchar* natural_collate_collate_key (gchar* str) {
+ gchar* result = NULL;
+ const gchar* _tmp0_ = NULL;
+ gboolean _tmp1_ = FALSE;
+ gchar* _result_ = NULL;
+ gchar* _tmp2_ = NULL;
+ gboolean eos = FALSE;
+ const gchar* _tmp3_ = NULL;
+ gint _tmp4_ = 0;
+ gint _tmp5_ = 0;
+ const gchar* _tmp70_ = NULL;
+ gchar* _tmp71_ = NULL;
+ gchar* _tmp72_ = NULL;
+ gchar* _tmp73_ = NULL;
+#line 47 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ g_return_val_if_fail (str != NULL, NULL);
+#line 53 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp0_ = str;
+#line 53 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp1_ = g_utf8_validate (_tmp0_, (gssize) -1, NULL);
+#line 53 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _vala_assert (_tmp1_, "str.validate()");
+#line 54 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp2_ = g_strdup ("");
+#line 54 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp2_;
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp3_ = str;
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp4_ = strlen (_tmp3_);
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp5_ = _tmp4_;
+#line 55 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ eos = _tmp5_ == 0;
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 466 "NaturalCollate.c"
+ gboolean _tmp6_ = FALSE;
+ const gchar* _tmp7_ = NULL;
+ gboolean _tmp8_ = FALSE;
+ gint position = 0;
+ const gchar* _tmp17_ = NULL;
+ const gchar* _tmp18_ = NULL;
+ gint _tmp19_ = 0;
+ gchar* _tmp20_ = NULL;
+ gchar* _tmp21_ = NULL;
+ gchar* _tmp22_ = NULL;
+ gchar* _tmp23_ = NULL;
+ gchar* _tmp24_ = NULL;
+ const gchar* _tmp25_ = NULL;
+ gint _tmp26_ = 0;
+ gchar* _tmp27_ = NULL;
+ const gchar* _tmp28_ = NULL;
+ gint _tmp29_ = 0;
+ gint _tmp30_ = 0;
+ gboolean _tmp31_ = FALSE;
+ const gchar* _tmp67_ = NULL;
+ gint _tmp68_ = 0;
+ gint _tmp69_ = 0;
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp6_ = eos;
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!(!_tmp6_)) {
+#line 57 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 495 "NaturalCollate.c"
+ }
+#line 58 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp7_ = str;
+#line 58 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp8_ = g_utf8_validate (_tmp7_, (gssize) -1, NULL);
+#line 58 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _vala_assert (_tmp8_, "str.validate()");
+#line 59 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ position = 0;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 507 "NaturalCollate.c"
+ const gchar* _tmp9_ = NULL;
+ gint _tmp10_ = 0;
+ gunichar _tmp11_ = 0U;
+ gchar* _tmp12_ = NULL;
+ gchar* _tmp13_ = NULL;
+ gboolean _tmp14_ = FALSE;
+ gboolean _tmp15_ = FALSE;
+ gint _tmp16_ = 0;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp9_ = str;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp10_ = position;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp11_ = string_get_char (_tmp9_, (glong) _tmp10_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp12_ = g_unichar_to_string (_tmp11_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp13_ = _tmp12_;
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp14_ = string_contains ("0123456789", _tmp13_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp15_ = !(!_tmp14_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp13_);
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (_tmp15_) {
+#line 60 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 536 "NaturalCollate.c"
+ }
+#line 62 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp16_ = position;
+#line 62 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ position = _tmp16_ + 1;
+#line 542 "NaturalCollate.c"
+ }
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp17_ = _result_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp18_ = str;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp19_ = position;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp20_ = string_substring (_tmp18_, (glong) 0, (glong) _tmp19_);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp21_ = _tmp20_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp22_ = g_utf8_collate_key (_tmp21_, (gssize) -1);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp23_ = _tmp22_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp24_ = g_strconcat (_tmp17_, _tmp23_, NULL);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_result_);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp24_;
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp23_);
+#line 66 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp21_);
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp25_ = str;
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp26_ = position;
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp27_ = string_substring (_tmp25_, (glong) _tmp26_, (glong) -1);
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (str);
+#line 69 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ str = _tmp27_;
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp28_ = str;
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp29_ = strlen (_tmp28_);
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp30_ = _tmp29_;
+#line 71 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ eos = _tmp30_ == 0;
+#line 72 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ position = 0;
+#line 74 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp31_ = eos;
+#line 74 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!_tmp31_) {
+#line 592 "NaturalCollate.c"
+ gint number = 0;
+ const gchar* _tmp32_ = NULL;
+ gchar* _tmp33_ = NULL;
+ gint _tmp34_ = 0;
+ const gchar* _tmp35_ = NULL;
+ gint _tmp36_ = 0;
+ gchar* _tmp37_ = NULL;
+ gint number_of_superdigits = 0;
+ gint _tmp38_ = 0;
+ gchar* _tmp39_ = NULL;
+ gchar* _tmp40_ = NULL;
+ gint _tmp41_ = 0;
+ gint _tmp42_ = 0;
+ gint _tmp43_ = 0;
+ gchar* to_append = NULL;
+ gchar* _tmp44_ = NULL;
+ const gchar* _tmp53_ = NULL;
+ gint _tmp54_ = 0;
+ gchar* _tmp55_ = NULL;
+ gchar* _tmp56_ = NULL;
+ gchar* _tmp57_ = NULL;
+ const gchar* _tmp58_ = NULL;
+ gchar* _tmp59_ = NULL;
+ gchar* _tmp60_ = NULL;
+ gchar* _tmp61_ = NULL;
+ gchar* _tmp62_ = NULL;
+ gchar* _tmp63_ = NULL;
+ gchar* _tmp64_ = NULL;
+ const gchar* _tmp65_ = NULL;
+ gchar* _tmp66_ = NULL;
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp32_ = str;
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp33_ = g_strdup (_tmp32_);
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp34_ = natural_collate_read_number (_tmp33_, &position);
+#line 76 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number = _tmp34_;
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp35_ = str;
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp36_ = position;
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp37_ = string_substring (_tmp35_, (glong) _tmp36_, (glong) -1);
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (str);
+#line 77 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ str = _tmp37_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp38_ = number;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp39_ = g_strdup_printf ("%i", _tmp38_);
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp40_ = _tmp39_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp41_ = strlen (_tmp40_);
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp42_ = _tmp41_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp43_ = _tmp42_;
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp40_);
+#line 78 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ number_of_superdigits = _tmp43_;
+#line 79 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp44_ = g_strdup ("");
+#line 79 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ to_append = _tmp44_;
+#line 661 "NaturalCollate.c"
+ {
+ gint i = 0;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ i = 1;
+#line 666 "NaturalCollate.c"
+ {
+ gboolean _tmp45_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp45_ = TRUE;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ while (TRUE) {
+#line 673 "NaturalCollate.c"
+ gint _tmp47_ = 0;
+ gint _tmp48_ = 0;
+ const gchar* _tmp49_ = NULL;
+ gchar* _tmp50_ = NULL;
+ gchar* _tmp51_ = NULL;
+ gchar* _tmp52_ = NULL;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!_tmp45_) {
+#line 682 "NaturalCollate.c"
+ gint _tmp46_ = 0;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp46_ = i;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ i = _tmp46_ + 1;
+#line 688 "NaturalCollate.c"
+ }
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp45_ = FALSE;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp47_ = i;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp48_ = number_of_superdigits;
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ if (!(_tmp47_ < _tmp48_)) {
+#line 80 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ break;
+#line 700 "NaturalCollate.c"
+ }
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp49_ = to_append;
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp50_ = g_unichar_to_string (NATURAL_COLLATE_SUPERDIGIT);
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp51_ = _tmp50_;
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp52_ = g_strconcat (_tmp49_, _tmp51_, NULL);
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (to_append);
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ to_append = _tmp52_;
+#line 82 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp51_);
+#line 716 "NaturalCollate.c"
+ }
+ }
+ }
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp53_ = to_append;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp54_ = number;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp55_ = g_strdup_printf ("%i", _tmp54_);
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp56_ = _tmp55_;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp57_ = g_strconcat (_tmp53_, _tmp56_, NULL);
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (to_append);
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ to_append = _tmp57_;
+#line 84 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp56_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp58_ = _result_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp59_ = g_strconcat (_tmp58_, NATURAL_COLLATE_COLLATION_SENTINEL, NULL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp60_ = _tmp59_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp61_ = g_unichar_to_string (NATURAL_COLLATE_NUM_SENTINEL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp62_ = _tmp61_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp63_ = g_strconcat (_tmp60_, _tmp62_, NULL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp64_ = _tmp63_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp65_ = to_append;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp66_ = g_strconcat (_tmp64_, _tmp65_, NULL);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_result_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp66_;
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp64_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp62_);
+#line 85 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp60_);
+#line 74 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (to_append);
+#line 766 "NaturalCollate.c"
+ }
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp67_ = str;
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp68_ = strlen (_tmp67_);
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp69_ = _tmp68_;
+#line 90 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ eos = _tmp69_ == 0;
+#line 776 "NaturalCollate.c"
+ }
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp70_ = _result_;
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp71_ = g_unichar_to_string (NATURAL_COLLATE_NUM_SENTINEL);
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp72_ = _tmp71_;
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _tmp73_ = g_strconcat (_tmp70_, _tmp72_, NULL);
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_result_);
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _result_ = _tmp73_;
+#line 93 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (_tmp72_);
+#line 96 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ result = _result_;
+#line 96 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ _g_free0 (str);
+#line 96 "/home/jens/Source/shotwell/src/NaturalCollate.vala"
+ return result;
+#line 798 "NaturalCollate.c"
+}
+
+
+