diff options
Diffstat (limited to 'src/NaturalCollate.c')
-rw-r--r-- | src/NaturalCollate.c | 801 |
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" +} + + + |