⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyfile.c

📁 this is a glib for c language
💻 C
📖 第 1 页 / 共 3 页
字号:
  check_string_value (keyfile, "group1", "key1", "bla");  g_key_file_remove_key (keyfile, "group1", "key1", &error);  check_no_error (&error);  value = g_key_file_get_string (keyfile, "group1", "key1", &error);  check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND);  g_free (value);    g_key_file_remove_key (keyfile, "group1", "key1", &error);  check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND);  g_key_file_remove_key (keyfile, "no such group", "key1", &error);  check_error (&error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND);  g_key_file_free (keyfile);}static voidtest_groups (void){  GKeyFile *keyfile;  const gchar *data =     "[1]\n"    "key1=123\n"    "[2]\n"    "key2=123\n";    g_test_bug ("316309");  keyfile = load_data (data, 0);  check_string_value (keyfile, "1", "key1", "123");  check_string_value (keyfile, "2", "key2", "123");  g_key_file_free (keyfile);  }static voidtest_group_names (void){  GKeyFile *keyfile;  GError *error = NULL;  const gchar *data;  gchar *value;  /* [ in group name */  data = "[a[b]\n"         "key1=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* ] in group name */  data = "[a]b]\n"         "key1=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* control char in group name */  data = "[a\tb]\n"         "key1=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* empty group name */  data = "[]\n"         "key1=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* Unicode in group name */  data = "[\xc2\xbd]\n"         "key1=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_no_error (&error);  keyfile = g_key_file_new ();  /*g_key_file_set_string (keyfile, "a[b", "key1", "123");*/  value = g_key_file_get_string (keyfile, "a[b", "key1", &error);  check_error (&error,                G_KEY_FILE_ERROR,               G_KEY_FILE_ERROR_GROUP_NOT_FOUND);    g_key_file_free (keyfile);    keyfile = g_key_file_new ();  /*g_key_file_set_string (keyfile, "a]b", "key1", "123");*/  value = g_key_file_get_string (keyfile, "a]b", "key1", &error);  check_error (&error,                G_KEY_FILE_ERROR,               G_KEY_FILE_ERROR_GROUP_NOT_FOUND);    g_key_file_free (keyfile);    keyfile = g_key_file_new ();  /*g_key_file_set_string (keyfile, "a\tb", "key1", "123");*/  value = g_key_file_get_string (keyfile, "a\tb", "key1", &error);  check_error (&error,                G_KEY_FILE_ERROR,               G_KEY_FILE_ERROR_GROUP_NOT_FOUND);    g_key_file_free (keyfile);    keyfile = g_key_file_new ();  g_key_file_set_string (keyfile, "\xc2\xbd", "key1", "123");  check_string_value (keyfile, "\xc2\xbd", "key1", "123");  g_key_file_free (keyfile);  }static voidtest_key_names (void){  GKeyFile *keyfile;  GError *error = NULL;  const gchar *data;  gchar *value;  /* [ in key name */  data = "[a]\n"         "key[=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* empty key name */  data = "[a]\n"         " =123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* empty key name */  data = "[a]\n"         " [de] =123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* bad locale suffix */  data = "[a]\n"         "foo[@#!&%]=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  /* initial space */  data = "[a]\n"         " foo=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  check_no_error (&error);  check_string_value (keyfile, "a", "foo", "123");  g_key_file_free (keyfile);    /* final space */  data = "[a]\n"         "foo =123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  check_no_error (&error);  check_string_value (keyfile, "a", "foo", "123");  g_key_file_free (keyfile);    /* inner space */  data = "[a]\n"         "foo bar=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  check_no_error (&error);  check_string_value (keyfile, "a", "foo bar", "123");  g_key_file_free (keyfile);    /* inner space */  data = "[a]\n"         "foo [de] =123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  check_error (&error, 	       G_KEY_FILE_ERROR,	       G_KEY_FILE_ERROR_PARSE);  g_key_file_free (keyfile);    /* control char in key name */  data = "[a]\n"         "key\tfoo=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_no_error (&error);  /* Unicode in key name */  data = "[a]\n"         "\xc2\xbd=123\n";  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile, data, -1, 0, &error);  g_key_file_free (keyfile);    check_no_error (&error);   keyfile = g_key_file_new ();  g_key_file_set_string (keyfile, "a", "x", "123");  /*g_key_file_set_string (keyfile, "a", "key=", "123");*/  value = g_key_file_get_string (keyfile, "a", "key=", &error);  check_error (&error,                G_KEY_FILE_ERROR,               G_KEY_FILE_ERROR_KEY_NOT_FOUND);    g_key_file_free (keyfile);    keyfile = g_key_file_new ();  g_key_file_set_string (keyfile, "a", "x", "123");  /*g_key_file_set_string (keyfile, "a", "key[", "123");*/  value = g_key_file_get_string (keyfile, "a", "key[", &error);  check_error (&error,                G_KEY_FILE_ERROR,               G_KEY_FILE_ERROR_KEY_NOT_FOUND);    g_key_file_free (keyfile);    keyfile = g_key_file_new ();  g_key_file_set_string (keyfile, "a", "x", "123");  g_key_file_set_string (keyfile, "a", "key\tfoo", "123");  value = g_key_file_get_string (keyfile, "a", "key\tfoo", &error);  check_no_error (&error);  g_key_file_free (keyfile);    keyfile = g_key_file_new ();  g_key_file_set_string (keyfile, "a", "x", "123");  /*g_key_file_set_string (keyfile, "a", " key", "123");*/  value = g_key_file_get_string (keyfile, "a", " key", &error);  check_error (&error,                G_KEY_FILE_ERROR,               G_KEY_FILE_ERROR_KEY_NOT_FOUND);    g_key_file_free (keyfile);    keyfile = g_key_file_new ();  g_key_file_set_string (keyfile, "a", "x", "123");  /* Unicode key */  g_key_file_set_string (keyfile, "a", "\xc2\xbd", "123");  check_string_value (keyfile, "a", "\xc2\xbd", "123");  /* Keys with / + . (as used by the gnome-vfs mime cache) */  g_key_file_set_string (keyfile, "a", "foo/bar", "/");  check_string_value (keyfile, "a", "foo/bar", "/");  g_key_file_set_string (keyfile, "a", "foo+bar", "+");  check_string_value (keyfile, "a", "foo+bar", "+");  g_key_file_set_string (keyfile, "a", "foo.bar", ".");  check_string_value (keyfile, "a", "foo.bar", ".");  g_key_file_free (keyfile);  }static voidtest_duplicate_keys (void){  GKeyFile *keyfile;  const gchar *data =     "[1]\n"    "key1=123\n"    "key1=345\n";  keyfile = load_data (data, 0);  check_string_value (keyfile, "1", "key1", "345");  g_key_file_free (keyfile);  }static voidtest_duplicate_groups (void){  GKeyFile *keyfile;  const gchar *data =     "[Desktop Entry]\n"    "key1=123\n"    "[Desktop Entry]\n"    "key2=123\n";    g_test_bug ("157877");  keyfile = load_data (data, 0);  check_string_value (keyfile, "Desktop Entry", "key1", "123");  check_string_value (keyfile, "Desktop Entry", "key2", "123");  g_key_file_free (keyfile);  }static voidtest_duplicate_groups2 (void){  GKeyFile *keyfile;  const gchar *data =     "[A]\n"    "foo=bar\n"    "[B]\n"    "foo=baz\n"    "[A]\n"    "foo=bang\n";    g_test_bug ("385910");  keyfile = load_data (data, 0);  check_string_value (keyfile, "A", "foo", "bang");  check_string_value (keyfile, "B", "foo", "baz");  g_key_file_free (keyfile);  }static voidtest_reload_idempotency (void){  static const gchar *original_data=""    "# Top comment\n"    "\n"    "# First comment\n"    "[first]\n"    "key=value\n"    "# A random comment in the first group\n"    "anotherkey=anothervalue\n"    "# Second comment - one line\n"    "[second]\n"    "# Third comment - two lines\n"    "# Third comment - two lines\n"    "[third]\n"    "blank_line=1\n"    "\n"    "blank_lines=2\n"    "\n\n"    "[fourth]\n"    "[fifth]\n";  GKeyFile *keyfile;  GError *error = NULL;  gchar *data1, *data2;  gsize len1, len2;  g_test_bug ("420686");  /* check that we only insert a single new line between groups */  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile,	                     original_data, strlen(original_data),	                     G_KEY_FILE_KEEP_COMMENTS,	                     &error);  check_no_error (&error);  data1 = g_key_file_to_data (keyfile, &len1, &error);  g_assert (data1 != NULL);  g_key_file_free (keyfile);  keyfile = g_key_file_new ();  g_key_file_load_from_data (keyfile,	                     data1, len1,			     G_KEY_FILE_KEEP_COMMENTS,			     &error);  check_no_error (&error);  data2 = g_key_file_to_data (keyfile, &len2, &error);  g_assert (data2 != NULL);  g_key_file_free (keyfile);  g_assert_cmpstr (data1, ==, data2);  g_free (data2);  g_free (data1);}intmain (int argc, char *argv[]){  g_test_init (&argc, &argv, NULL);  g_test_bug_base ("http://bugzilla.gnome.org/");  g_test_add_func ("/keyfile/line-ends", test_line_ends);  g_test_add_func ("/keyfile/whitespace", test_whitespace);  g_test_add_func ("/keyfile/comments", test_comments);  g_test_add_func ("/keyfile/listing", test_listing);  g_test_add_func ("/keyfile/string", test_string);  g_test_add_func ("/keyfile/boolean", test_boolean);  g_test_add_func ("/keyfile/number", test_number);  g_test_add_func ("/keyfile/locale-string", test_locale_string);  g_test_add_func ("/keyfile/lists", test_lists);  g_test_add_func ("/keyfile/lists-set-get", test_lists_set_get);  g_test_add_func ("/keyfile/group-remove", test_group_remove);  g_test_add_func ("/keyfile/key-remove", test_key_remove);  g_test_add_func ("/keyfile/groups", test_groups);  g_test_add_func ("/keyfile/duplicate-keys", test_duplicate_keys);  g_test_add_func ("/keyfile/duplicate-groups", test_duplicate_groups);  g_test_add_func ("/keyfile/duplicate-groups2", test_duplicate_groups2);  g_test_add_func ("/keyfile/group-names", test_group_names);  g_test_add_func ("/keyfile/key-names", test_key_names);  g_test_add_func ("/keyfile/reload", test_reload_idempotency);    return g_test_run ();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -