void git_upgrade () // Upgrades the git system. { // Go through the projects that have their git repository enabled. extern Settings * settings; vector <ustring> projects = projects_get_all (); for (unsigned int i = 0; i < projects.size(); i++) { ProjectConfiguration * projectconfig = settings->projectconfig (projects[i]); ustring git_directory = gw_build_filename (project_data_directory_project (projects[i]), ".git"); if (projectconfig->git_use_remote_repository_get()) { // At times there's a stale index.lock file that prevents any collaboration. // This is to be removed. ustring index_lock = gw_build_filename (git_directory, "index.lock"); if (g_file_test (index_lock.c_str(), G_FILE_TEST_IS_REGULAR)) { gw_message (_("Cleaning out index lock ") + index_lock); unix_unlink (index_lock.c_str()); } // Get the data directory for the project ustring datadirectory = tiny_project_data_directory_project(projects[i]); // On most machines git can determine the user's name from the system services. // On the XO machine, it can't. It is set here manually. // On more recent versions of git, like version 1.8.3 and younger, // although git may determine the user's name from the system, // it still requires it to be set manually. ustring command; command = "git config user.email \""; command.append(g_get_user_name()); command.append("@"); command.append(g_get_host_name()); command.append("\""); maintenance_register_shell_command (datadirectory, command); command = "git config user.name \""; command.append(g_get_real_name()); command.append("\""); maintenance_register_shell_command (datadirectory, command); // (Re)initialize the repository. This can be done repeatedly without harm. // Note that this is done on shutdown. maintenance_register_shell_command (datadirectory, "git init"); } else { if (g_file_test (git_directory.c_str(), G_FILE_TEST_IS_DIR)) { gw_message (_("Cleaning out folder ") + git_directory); ProgressWindow progresswindow (_("Tidying up project ") + projects[i], false); progresswindow.set_fraction (0.5); unix_rmdir (git_directory); } } } }
static void setup (void) { GstTagSetter *setter; gchar *desc_str; GstCaps *filter_caps; GstBus *bus; GST_INFO ("init"); main_loop = g_main_loop_new (NULL, TRUE); camera = gst_check_setup_element ("camerabin"); setup_camerabin_elements (camera); g_signal_connect (camera, "img-done", G_CALLBACK (capture_done), main_loop); bus = gst_pipeline_get_bus (GST_PIPELINE (camera)); gst_bus_add_watch (bus, (GstBusFunc) capture_bus_cb, main_loop); gst_object_unref (bus); filter_caps = gst_caps_from_string ("video/x-raw-yuv,format=(fourcc)I420"); g_object_set (G_OBJECT (camera), "filter-caps", filter_caps, NULL); gst_caps_unref (filter_caps); /* force a low framerate here to not timeout the tests because of the * encoders */ g_signal_emit_by_name (camera, "user-res-fps", 320, 240, 5, 1, NULL); /* Set some default tags */ setter = GST_TAG_SETTER (camera); desc_str = g_strdup_printf ("Created by %s", g_get_real_name ()); gst_tag_setter_add_tags (setter, GST_TAG_MERGE_REPLACE, GST_TAG_DESCRIPTION, desc_str, NULL); g_free (desc_str); if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { GST_WARNING ("setting camerabin to PLAYING failed"); gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); gst_object_unref (camera); camera = NULL; } GST_INFO ("init finished"); }
char * panel_util_get_user_name (void) { char *name; name = g_locale_to_utf8 (g_get_real_name (), -1, NULL, NULL, NULL); if (PANEL_GLIB_STR_EMPTY (name) || g_strcmp0 (name, "Unknown") == 0) { g_free (name); name = g_locale_to_utf8 (g_get_user_name (), -1 , NULL, NULL, NULL); } if (!name) name = g_strdup (g_get_user_name ()); return name; }
JNIEXPORT jstring JNICALL Java_org_gnome_glib_GlibMisc_g_1get_1real_1name ( JNIEnv* env, jclass cls ) { const gchar* result; jstring _result; // call function result = g_get_real_name(); // translate return value to JNI type _result = (jstring) bindings_java_newString(env, result); // and finally return _result; }
static int gnome_score_child (int infileno, int outfileno) { struct command cmd; gchar *level; gchar *realname; gint retval; #ifdef HAVE_SETFSGID gid_t gid; gid = getegid (); setgid (getgid ()); setfsgid (gid); #endif realname = g_strdup (g_get_real_name ()); if (strcmp (realname, "Unknown") == 0) { g_free (realname); realname = g_strdup (g_get_user_name ()); } while (read (infileno, &cmd, sizeof cmd) == sizeof(cmd)) { level = g_new (char, cmd.level); if (read (infileno, level, cmd.level) != cmd.level) { g_free (realname); return EXIT_FAILURE; } if (!*level) { g_free(level); level = NULL; } retval = log_score (defgamename, level, realname, cmd.score, cmd.ordering); if (write(outfileno, &retval, sizeof retval) != sizeof retval) { g_free (realname); return EXIT_FAILURE; } g_free(level); } g_free (realname); return EXIT_SUCCESS; }
static void show_account_creation(RingMainWindow *win) { RingMainWindowPrivate *priv = RING_MAIN_WINDOW_GET_PRIVATE(win); gtk_stack_add_named(GTK_STACK(priv->stack_main_view), priv->account_creation_1, CREATE_ACCOUNT_1_VIEW_NAME); gtk_stack_add_named(GTK_STACK(priv->stack_main_view), priv->account_creation_2, CREATE_ACCOUNT_2_VIEW_NAME); /* hide settings button until account creation is complete */ gtk_widget_hide(priv->ring_settings); /* set ring logo */ GError *error = NULL; GdkPixbuf* logo_ring = gdk_pixbuf_new_from_resource_at_scale("/cx/ring/RingGnome/ring-logo-blue", -1, 75, TRUE, &error); if (logo_ring == NULL) { g_debug("Could not load logo: %s", error->message); g_clear_error(&error); } else gtk_image_set_from_pixbuf(GTK_IMAGE(priv->image_ring_logo), logo_ring); /* style of alias and hash entry; give them a larger font */ gtk_widget_override_font(priv->entry_alias, pango_font_description_from_string("15")); gtk_widget_override_font(priv->entry_hash, pango_font_description_from_string("monospace 15")); gtk_entry_set_text(GTK_ENTRY(priv->entry_alias), g_get_real_name()); /* connect signals */ g_signal_connect(priv->entry_alias, "changed", G_CALLBACK(alias_entry_changed), win); g_signal_connect(priv->button_account_creation_next, "clicked", G_CALLBACK(account_creation_next_clicked), win); g_signal_connect(priv->button_account_creation_done, "clicked", G_CALLBACK(account_creation_done_clicked), win); g_signal_connect(priv->entry_alias, "activate", G_CALLBACK(entry_alias_activated), win); g_signal_connect_swapped(priv->entry_hash, "activate", G_CALLBACK(gtk_button_clicked), priv->button_account_creation_done); gtk_stack_set_visible_child_name(GTK_STACK(priv->stack_main_view), CREATE_ACCOUNT_1_VIEW_NAME); }
static void init_userinfo(void) { const char *set, *nick, *user_name, *str; /* check if nick/username/realname wasn't read from setup.. */ set = settings_get_str("real_name"); if (set == NULL || *set == '\0') { str = g_getenv("IRCNAME"); settings_set_str("real_name", str != NULL ? str : g_get_real_name()); } /* username */ user_name = settings_get_str("user_name"); if (user_name == NULL || *user_name == '\0') { str = g_getenv("IRCUSER"); settings_set_str("user_name", str != NULL ? str : g_get_user_name()); user_name = settings_get_str("user_name"); } /* nick */ nick = settings_get_str("nick"); if (nick == NULL || *nick == '\0') { str = g_getenv("IRCNICK"); settings_set_str("nick", str != NULL ? str : user_name); nick = settings_get_str("nick"); } /* host name */ set = settings_get_str("hostname"); if (set == NULL || *set == '\0') { str = g_getenv("IRCHOST"); if (str != NULL) settings_set_str("hostname", str); } }
static void bt_song_info_init (BtSongInfo * self) { time_t now = time (NULL); const gchar *user_name; self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, BT_TYPE_SONG_INFO, BtSongInfoPrivate); self->priv->taglist = gst_tag_list_new_empty (); user_name = g_get_real_name (); if (!user_name || !user_name[0]) { user_name = g_get_user_name (); } self->priv->name = g_strdup (DEFAULT_SONG_NAME); self->priv->author = g_strdup (user_name); // @idea alternate bpm's a little at new_song (user defined range?) self->priv->beats_per_minute = 125; // 1..1000 self->priv->ticks_per_beat = 4; // 1..128 self->priv->bars = 16; // 1..16 bt_song_info_tempo_changed (self); // init dates 'YYYY-MM-DDThh:mm:ssZ' self->priv->create_dts = g_new (gchar, DTS_LEN + 1); self->priv->change_dts = g_new (gchar, DTS_LEN + 1); strftime (self->priv->create_dts, DTS_LEN + 1, "%FT%TZ", gmtime (&now)); strncpy (self->priv->change_dts, self->priv->create_dts, DTS_LEN + 1); GST_DEBUG ("date initialized as %s", self->priv->change_dts); // init taglist self->priv->tag_date = g_date_new (); g_date_set_time_t (self->priv->tag_date, now); gst_tag_list_add (self->priv->taglist, GST_TAG_MERGE_REPLACE, GST_TAG_TITLE, self->priv->name, GST_TAG_ARTIST, self->priv->author, GST_TAG_DATE, self->priv->tag_date, GST_TAG_BEATS_PER_MINUTE, (gdouble) self->priv->beats_per_minute, NULL); }
int main(int argc, char *argv[]) { printf("Host name\t: %s\n", g_get_host_name()); // 取得使用者真實姓名 printf("Real name\t: %s\n", g_get_real_name()); // 取得使用者帳號名稱 printf("User name\t: %s\n", g_get_user_name()); // 取得目前所在路徑 printf("Current dir\t: %s\n", g_get_current_dir()); // 取得使用者家目錄 printf("Home dir\t: %s\n", g_get_home_dir()); // 取得暫存目錄 printf("Temp dir\t: %s\n", g_get_tmp_dir()); // 取得PATH環境變數 printf("PATH\t\t: %s\n", g_getenv("PATH")); // 設定CLASSPATH環境變數,FALSE表示若已設定則不覆寫 g_setenv("CLASSPATH", "D:\\Temp", FALSE); // 取得CLASSPATH環境變數 printf("CLASSPATH\t: %s\n", g_getenv("CLASSPATH")); // 取消CLASSPATH環境變數 g_unsetenv("CLASSPATH"); printf("CLASSPATH\t: %s\n", g_getenv("CLASSPATH")); return 0; }
OperatingSystem * computer_get_os(void) { struct utsname utsbuf; OperatingSystem *os; int i; os = g_new0(OperatingSystem, 1); /* Attempt to get the Distribution name; try using /etc/lsb-release first, then doing the legacy method (checking for /etc/$DISTRO-release files) */ if (g_file_test("/etc/lsb-release", G_FILE_TEST_EXISTS)) { FILE *release; gchar buffer[128]; release = popen("lsb_release -d", "r"); if (release) { (void)fgets(buffer, 128, release); pclose(release); os->distro = buffer; os->distro = g_strdup(os->distro + strlen("Description:\t")); } } else if (g_file_test("/etc/arch-release", G_FILE_TEST_EXISTS)) { os->distrocode = g_strdup("arch"); os->distro = g_strdup("Arch Linux"); } else { for (i = 0;; i++) { if (distro_db[i].file == NULL) { os->distrocode = g_strdup("unk"); os->distro = g_strdup(_("Unknown distribution")); break; } if (g_file_test(distro_db[i].file, G_FILE_TEST_EXISTS)) { FILE *distro_ver; char buf[128]; distro_ver = fopen(distro_db[i].file, "r"); if (distro_ver) { (void)fgets(buf, 128, distro_ver); fclose(distro_ver); } else { continue; } buf[strlen(buf) - 1] = 0; if (!os->distro) { /* * HACK: Some Debian systems doesn't include * the distribuition name in /etc/debian_release, * so add them here. */ if (!strncmp(distro_db[i].codename, "deb", 3) && ((buf[0] >= '0' && buf[0] <= '9') || buf[0] != 'D')) { os->distro = g_strdup_printf ("Debian GNU/Linux %s", buf); } else { os->distro = g_strdup(buf); } } if (g_str_equal(distro_db[i].codename, "ppy")) { gchar *tmp; tmp = g_strdup_printf("Puppy Linux"); g_free(os->distro); os->distro = tmp; } os->distrocode = g_strdup(distro_db[i].codename); break; } } } os->distro = g_strstrip(os->distro); /* Kernel and hostname info */ uname(&utsbuf); os->kernel_version = g_strdup(utsbuf.version); os->kernel = g_strdup_printf("%s %s (%s)", utsbuf.sysname, utsbuf.release, utsbuf.machine); os->hostname = g_strdup(utsbuf.nodename); os->language = g_strdup(g_getenv("LC_MESSAGES")); os->homedir = g_strdup(g_get_home_dir()); os->username = g_strdup_printf("%s (%s)", g_get_user_name(), g_get_real_name()); os->libc = get_libc_version(); scan_languages(os); detect_desktop_environment(os); return os; }
void dialog_cell_comment (WBCGtk *wbcg, Sheet *sheet, GnmCellPos const *pos) { CommentState *state; GtkWidget *box, *check, *old_author, *new_author; GnmComment *comment; GtkBuilder *gui; char *title, *cell_name; char const*real_user; GnmCellRef ref; GnmParsePos pp; GnmConventionsOut out; g_return_if_fail (wbcg != NULL); g_return_if_fail (sheet != NULL); g_return_if_fail (pos != NULL); if (gnumeric_dialog_raise_if_exists (wbcg, COMMENT_DIALOG_KEY)) return; gui = gnm_gtk_builder_new ("cell-comment.ui", NULL, GO_CMD_CONTEXT (wbcg)); if (gui == NULL) return; state = g_new (CommentState, 1); state->wbcg = wbcg; state->sheet = sheet; state->pos = pos; state->gui = gui; state->dialog = go_gtk_builder_get_widget (state->gui, "comment_dialog"); g_return_if_fail (state->dialog != NULL); box = go_gtk_builder_get_widget (state->gui, "dialog-vbox"); g_return_if_fail (box != NULL); state->gtv = gnm_text_view_new (); gtk_widget_show_all (GTK_WIDGET (state->gtv)); gtk_box_pack_start (GTK_BOX (box), GTK_WIDGET (state->gtv), TRUE, TRUE, TRUE); g_object_set (state->gtv, "wrap", GTK_WRAP_WORD, NULL); gnm_cellref_init (&ref, sheet, pos->col, pos->row, FALSE); out.accum = g_string_new (NULL); parse_pos_init_sheet (&pp, sheet); out.pp = &pp; out.convs = sheet->convs; cellref_as_string (&out, &ref, FALSE); cell_name = g_string_free (out.accum, FALSE); old_author = go_gtk_builder_get_widget (state->gui, "old-author-entry"); new_author = go_gtk_builder_get_widget (state->gui, "new-author-entry"); real_user = g_get_real_name (); if ((real_user != NULL) && g_utf8_validate (real_user, -1, NULL)) { gtk_entry_set_text (GTK_ENTRY (new_author), real_user); gtk_editable_select_region (GTK_EDITABLE (new_author), 0, -1); } comment = sheet_get_comment (sheet, pos); if (comment) { char const *text; PangoAttrList *attr; g_object_get (G_OBJECT (comment), "text", &text, "markup", &attr, NULL); g_object_set (state->gtv, "text", text, "attributes", attr, NULL); if (attr != NULL) pango_attr_list_unref (attr); text = cell_comment_author_get (comment); if (text != NULL) gtk_label_set_text (GTK_LABEL (old_author), text); title = g_strdup_printf (_("Edit Cell Comment (%s)"), cell_name); } else { title = g_strdup_printf (_("New Cell Comment (%s)"), cell_name); gtk_widget_hide (old_author); gtk_widget_hide (go_gtk_builder_get_widget (state->gui, "old-author-label")); } gtk_window_set_title (GTK_WINDOW (state->dialog), title); g_free (title); state->ok_button = go_gtk_builder_get_widget (state->gui, "ok_button"); g_signal_connect (G_OBJECT (state->ok_button), "clicked", G_CALLBACK (cb_cell_comment_ok_clicked), state); state->cancel_button = go_gtk_builder_get_widget (state->gui, "cancel_button"); g_signal_connect (G_OBJECT (state->cancel_button), "clicked", G_CALLBACK (cb_cell_comment_cancel_clicked), state); check = go_gtk_builder_get_widget (state->gui, "wrap-check"); g_signal_connect (G_OBJECT (check), "toggled", G_CALLBACK (cb_wrap_toggled), state->gtv); cb_wrap_toggled (GTK_TOGGLE_BUTTON (check), G_OBJECT (state->gtv)); gnumeric_init_help_button ( go_gtk_builder_get_widget (state->gui, "help_button"), GNUMERIC_HELP_LINK_CELL_COMMENT); wbc_gtk_attach_guru (state->wbcg, state->dialog); g_object_set_data_full (G_OBJECT (state->dialog), "state", state, (GDestroyNotify) cb_dialog_cell_comment_destroy); gnm_dialog_setup_destroy_handlers (GTK_DIALOG (state->dialog), state->wbcg, GNM_DIALOG_DESTROY_CURRENT_SHEET_REMOVED); gnumeric_keyed_dialog (state->wbcg, GTK_WINDOW (state->dialog), COMMENT_DIALOG_KEY); gtk_widget_show (state->dialog); }
int main (int argc, char *argv[]) { char **player_names; gsize n_player_names; guint i; GOptionContext *context; gboolean retval; GError *error = NULL; setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); application = gtk_application_new ("org.gnome.gtali", 0); g_signal_connect (application, "activate", G_CALLBACK (GyahtzeeCreateMainWindow), NULL); games_scores_startup (); /* Reset all yahtzee variables before parsing args */ YahtzeeInit (); context = g_option_context_new (NULL); g_option_context_add_group (context, gtk_get_option_group (TRUE)); g_option_context_add_main_entries (context, yahtzee_options, GETTEXT_PACKAGE); retval = g_option_context_parse (context, &argc, &argv, &error); g_option_context_free (context); if (!retval) { g_print ("%s", error->message); g_error_free (error); exit (1); } settings = g_settings_new ("org.gnome.gtali"); g_set_application_name (_(appName)); games_stock_init (); /* If we're in computer test mode, just run some tests, no GUI */ if (test_computer_play > 0) { gint ii, jj, kk; gdouble sum_scores = 0.0; game_type = GAME_YAHTZEE; if (game_type_string) game_type = game_type_from_string(game_type_string); g_message("In test computer play section - Using %d trials for simulation", NUM_TRIALS); for (ii = 0; ii < test_computer_play; ii++) { int num_rolls = 0; NumberOfHumans = 0; NumberOfComputers = 1; NewGame (); while (!GameIsOver() && num_rolls < 100) { ComputerRolling (CurrentPlayer); if (NoDiceSelected () || (NumberOfRolls >= NUM_ROLLS)) { ComputerScoring (CurrentPlayer); NumberOfRolls = 0; SelectAllDice (); RollSelectedDice (); } else { RollSelectedDice (); } num_rolls++; } for (kk = NumberOfHumans; kk < NumberOfPlayers; kk++) { printf("Computer score: %d\n", total_score(kk)); sum_scores += total_score(kk); if (num_rolls > 98) { for (jj = 0; jj < NUM_FIELDS; jj++) g_message("Category %d is score %d", jj, players[kk].score[jj]); } } } printf("Computer average: %.2f for %d trials\n", sum_scores / test_computer_play, NUM_TRIALS); exit(0); } highscores = games_scores_new ("gtali", category_array, G_N_ELEMENTS (category_array), "game type", NULL, 0 /* default category */, GAMES_SCORES_STYLE_PLAIN_DESCENDING); gtk_window_set_default_icon_name ("gtali"); if (NumberOfComputers == 0) /* Not set on the command-line. */ NumberOfComputers = g_settings_get_int (settings, "number-of-computer-opponents"); if (NumberOfHumans == 0) /* Not set on the command-line. */ NumberOfHumans = g_settings_get_int (settings, "number-of-human-opponents"); if (NumberOfHumans < 1) NumberOfHumans = 1; if (NumberOfComputers < 0) NumberOfComputers = 0; if (NumberOfHumans > MAX_NUMBER_OF_PLAYERS) NumberOfHumans = MAX_NUMBER_OF_PLAYERS; if ((NumberOfHumans + NumberOfComputers) > MAX_NUMBER_OF_PLAYERS) NumberOfComputers = MAX_NUMBER_OF_PLAYERS - NumberOfHumans; if (game_type_string) game_type = game_type_from_string(game_type_string); else { char *type; type = g_settings_get_string (settings, "game-type"); game_type = game_type_from_string(type); } set_new_game_type(game_type); if (NUM_TRIALS <= 0) NUM_TRIALS = g_settings_get_int (settings, "monte-carlo-trials"); if (DoDelay == 0) /* Not set on the command-line */ DoDelay = g_settings_get_boolean (settings, "delay-between-rolls"); if (DisplayComputerThoughts == 0) /* Not set on the command-line */ DisplayComputerThoughts = g_settings_get_boolean (settings, "display-computer-thoughts"); /* Read in new player names */ player_names = g_settings_get_strv (settings, "player-names"); n_player_names = g_strv_length (player_names); if (player_names) { n_player_names = MIN (n_player_names, MAX_NUMBER_OF_PLAYERS); for (i = 0; i < n_player_names; ++i) { if (i == 0 && strcasecmp (player_names[i], _("Human")) == 0) { const char *realname; realname = g_get_real_name (); if (realname && realname[0] && strcmp (realname, "Unknown") != 0) { players[i].name = g_locale_to_utf8 (realname, -1, NULL, NULL, NULL); } if (!players[i].name) { players[i].name = g_strdup (player_names[i]); } } else { players[i].name = g_strdup (player_names[i]); } } g_strfreev (player_names); } g_application_run (G_APPLICATION (application), argc, argv); exit(0); }
static gboolean csm_logout_dialog_timeout (gpointer data) { CsmLogoutDialog *logout_dialog; char *seconds_warning; char *secondary_text; logout_dialog = (CsmLogoutDialog *) data; if (!logout_dialog->priv->timeout && logout_dialog->priv->delay_toggle) { gtk_dialog_response (GTK_DIALOG (logout_dialog), logout_dialog->priv->default_response); return FALSE; } switch (logout_dialog->priv->type) { case CSM_DIALOG_LOGOUT_TYPE_LOGOUT: /* This string is shared with csm-fail-whale-dialog.c */ seconds_warning = ngettext ("You will be automatically logged " "out in %d second.", "You will be logged " "out in %d seconds.", logout_dialog->priv->timeout); break; case CSM_DIALOG_LOGOUT_TYPE_SHUTDOWN: seconds_warning = ngettext ("This system will be automatically " "shut down in %d second.", "This system will be " "shut down in %d seconds.", logout_dialog->priv->timeout); break; case CSM_DIALOG_LOGOUT_TYPE_REBOOT: seconds_warning = ngettext ("This system will be automatically " "restarted in %d second.", "This system will be " "restarted in %d seconds.", logout_dialog->priv->timeout); break; default: g_assert_not_reached (); } if (!csm_system_is_login_session (logout_dialog->priv->system)) { char *name; name = g_locale_to_utf8 (g_get_real_name (), -1, NULL, NULL, NULL); if (!name || name[0] == '\0' || strcmp (name, "Unknown") == 0) { name = g_locale_to_utf8 (g_get_user_name (), -1 , NULL, NULL, NULL); } if (!name) { name = g_strdup (g_get_user_name ()); } secondary_text = g_strdup_printf (_("You are currently logged in as \"%s\"."), name); g_free (name); } gdouble delay; delay = (gdouble)logout_dialog->priv->delay; seconds_warning = g_strdup_printf (seconds_warning, logout_dialog->priv->timeout); gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), logout_dialog->priv->timeout / delay); gtk_progress_bar_set_show_text( GTK_PROGRESS_BAR(logout_dialog->priv->progressbar), TRUE ); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), seconds_warning); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (logout_dialog), secondary_text, NULL); logout_dialog->priv->timeout--; g_free (secondary_text); g_free (seconds_warning); return TRUE; }
void load_config (void) { struct stat st; char *cfg, *sp; const char *username, *realname; int res, val, i, fh; check_prefs_dir (); username = g_get_user_name (); if (!username) username = "******"; realname = g_get_real_name (); if ((realname && realname[0] == 0) || !realname) realname = username; username = convert_with_fallback (username, "username"); realname = convert_with_fallback (realname, "realname"); memset (&prefs, 0, sizeof (struct xchatprefs)); /* put in default values, anything left out is automatically zero */ prefs.local_ip = 0xffffffff; prefs.irc_join_delay = 3; prefs.show_marker = 1; prefs.newtabstofront = 2; prefs.completion_amount = 5; prefs.away_timeout = 60; prefs.away_size_max = 300; prefs.away_track = 1; prefs.timestamp_logs = 1; prefs.truncchans = 20; prefs.autoresume = 1; prefs.show_away_once = 1; prefs.indent_nicks = 1; prefs.thin_separator = 1; prefs._tabs_position = 2; /* 2 = left */ prefs.fastdccsend = 1; prefs.wordwrap = 1; prefs.autosave = 1; prefs.autodialog = 1; prefs.gui_input_spell = 1; prefs.autoreconnect = 1; prefs.recon_delay = 10; prefs.text_replay = 1; prefs.tabchannels = 1; prefs.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */ prefs.tab_sort = 1; prefs.paned_userlist = 1; prefs.newtabstofront = 2; prefs.use_server_tab = 1; prefs.privmsgtab = 1; /*prefs.style_inputbox = 1;*/ prefs.dccpermissions = 0600; prefs.max_lines = 500; prefs.mainwindow_width = 640; prefs.mainwindow_height = 400; prefs.dialog_width = 500; prefs.dialog_height = 256; prefs.gui_join_dialog = 1; prefs.gui_quit_dialog = 1; prefs.dcctimeout = 180; prefs.dccstalltimeout = 60; prefs.notify_timeout = 15; prefs.tint_red = prefs.tint_green = prefs.tint_blue = 195; prefs.auto_indent = 1; prefs.max_auto_indent = 256; prefs.show_separator = 1; prefs.dcc_blocksize = 1024; prefs.throttle = 1; /*FIXME*/ prefs.msg_time_limit = 30; prefs.msg_number_limit = 5; prefs.ctcp_time_limit = 30; prefs.ctcp_number_limit = 5; prefs.topicbar = 1; prefs.lagometer = 1; prefs.throttlemeter = 1; prefs.autoopendccrecvwindow = 1; prefs.autoopendccsendwindow = 1; prefs.autoopendccchatwindow = 1; prefs.userhost = 1; prefs.gui_url_mod = 4; /* ctrl */ prefs.gui_tray = 1; prefs.gui_pane_left_size = 100; prefs.gui_pane_right_size = 100; prefs.mainwindow_save = 1; prefs.bantype = 2; prefs.input_balloon_time = 20; prefs.input_flash_priv = prefs.input_flash_hilight = 1; prefs.input_tray_priv = prefs.input_tray_hilight = 1; prefs.autodccsend = 2; /* browse mode */ prefs.url_grabber = 1; prefs.url_grabber_limit = 0; /* 0 means unlimited for backcompat */ #ifdef WIN32 prefs.identd = 1; #endif strcpy (prefs.stamp_format, "[%H:%M] "); strcpy (prefs.timestamp_log_format, "%b %d %H:%M:%S "); strcpy (prefs.logmask, "%n-%c.log"); strcpy (prefs.nick_suffix, ","); strcpy (prefs.cmdchar, "/"); strcpy (prefs.nick1, username); strcpy (prefs.nick2, username); strcat (prefs.nick2, "_"); strcpy (prefs.nick3, username); strcat (prefs.nick3, "__"); strcpy (prefs.realname, realname); strcpy (prefs.username, username); #ifdef WIN32 strcpy (prefs.sounddir, "./sounds"); { char out[256]; if (get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\" "Explorer\\Shell Folders", "Personal", out, sizeof (out))) snprintf (prefs.dccdir, sizeof (prefs.dccdir), "%s\\Downloads", out); else snprintf (prefs.dccdir, sizeof (prefs.dccdir), "%s\\Downloads", get_xdir_utf8 ()); } #else snprintf (prefs.sounddir, sizeof (prefs.sounddir), "%s/sounds", get_xdir_utf8 ()); snprintf (prefs.dccdir, sizeof (prefs.dccdir), "%s/downloads", get_xdir_utf8 ()); #endif strcpy (prefs.doubleclickuser, "QUOTE WHOIS %s %s"); strcpy (prefs.awayreason, _("I'm busy")); strcpy (prefs.quitreason, _("Leaving")); strcpy (prefs.partreason, prefs.quitreason); strcpy (prefs.font_normal, DEF_FONT); strcpy (prefs.dnsprogram, "host"); strcpy (prefs.irc_no_hilight, "NickServ,ChanServ"); g_free ((char *)username); g_free ((char *)realname); fh = open (default_file (), OFLAGS | O_RDONLY); if (fh != -1) { fstat (fh, &st); cfg = malloc (st.st_size + 1); cfg[0] = '\0'; i = read (fh, cfg, st.st_size); if (i >= 0) cfg[i] = '\0'; /* make sure cfg is NULL terminated */ close (fh); i = 0; do { switch (vars[i].type) { case TYPE_STR: cfg_get_str (cfg, vars[i].name, (char *) &prefs + vars[i].offset, vars[i].len); break; case TYPE_BOOL: case TYPE_INT: val = cfg_get_int_with_result (cfg, vars[i].name, &res); if (res) *((int *) &prefs + vars[i].offset) = val; break; } i++; } while (vars[i].name); free (cfg); } else { #ifndef WIN32 #ifndef __EMX__ /* OS/2 uses UID 0 all the time */ if (getuid () == 0) fe_message (_("* Running IRC as root is stupid! You should\n" " create a User Account and use that to login.\n"), FE_MSG_WARN|FE_MSG_WAIT); #endif #endif /* !WIN32 */ mkdir_utf8 (prefs.dccdir); mkdir_utf8 (prefs.dcc_completed_dir); } if (prefs.mainwindow_height < 138) prefs.mainwindow_height = 138; if (prefs.mainwindow_width < 106) prefs.mainwindow_width = 106; sp = strchr (prefs.username, ' '); if (sp) sp[0] = 0; /* spaces in username would break the login */ /* try to make sense of old ulist/tree position settings */ if (prefs.gui_ulist_pos == 0) { prefs.gui_ulist_pos = 3; /* top right */ if (prefs._gui_ulist_left) prefs.gui_ulist_pos = 2; /* bottom left */ switch (prefs._tabs_position) { case 0: prefs.tab_pos = 6; /* bottom */ break; case 1: prefs.tab_pos = 5; /* top */ break; case 2: prefs.tab_pos = 1; /* left */ break; case 3: prefs.tab_pos = 4; /* right */ break; case 4: prefs.tab_pos = 1; /* (hidden)left */ break; case 5: if (prefs._gui_ulist_left) { prefs.tab_pos = 1; /* above ulist left */ prefs.gui_ulist_pos = 2; } else { prefs.tab_pos = 3; /* above ulist right */ prefs.gui_ulist_pos = 4; } break; } } }
static gboolean csm_logout_dialog_timeout (gpointer data) { CsmLogoutDialog *logout_dialog; char *seconds_warning; char *secondary_text; int seconds_to_show; logout_dialog = (CsmLogoutDialog *) data; if (!logout_dialog->priv->timeout) { gtk_dialog_response (GTK_DIALOG (logout_dialog), logout_dialog->priv->default_response); return FALSE; } if (logout_dialog->priv->timeout <= 30) { seconds_to_show = logout_dialog->priv->timeout; } else { seconds_to_show = (logout_dialog->priv->timeout/10) * 10; if (logout_dialog->priv->timeout % 10) seconds_to_show += 10; } switch (logout_dialog->priv->type) { case CSM_DIALOG_LOGOUT_TYPE_LOGOUT: /* This string is shared with csm-fail-whale-dialog.c */ seconds_warning = ngettext ("You will be automatically logged " "out in %d second.", "You will be automatically logged " "out in %d seconds.", seconds_to_show); break; case CSM_DIALOG_LOGOUT_TYPE_SHUTDOWN: seconds_warning = ngettext ("This system will be automatically " "shut down in %d second.", "This system will be automatically " "shut down in %d seconds.", seconds_to_show); break; case CSM_DIALOG_LOGOUT_TYPE_REBOOT: seconds_warning = ngettext ("This system will be automatically " "restarted in %d second.", "This system will be automatically " "restarted in %d seconds.", seconds_to_show); break; default: g_assert_not_reached (); } if (!csm_system_is_login_session (logout_dialog->priv->system)) { char *name, *tmp; name = g_locale_to_utf8 (g_get_real_name (), -1, NULL, NULL, NULL); if (!name || name[0] == '\0' || strcmp (name, "Unknown") == 0) { name = g_locale_to_utf8 (g_get_user_name (), -1 , NULL, NULL, NULL); } if (!name) { name = g_strdup (g_get_user_name ()); } tmp = g_strdup_printf (_("You are currently logged in as \"%s\"."), name); secondary_text = g_strconcat (tmp, "\n", seconds_warning, NULL); g_free (tmp); g_free (name); } else { secondary_text = g_strdup (seconds_warning); } gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (logout_dialog), secondary_text, seconds_to_show, NULL); logout_dialog->priv->timeout--; g_free (secondary_text); return TRUE; }
glib_micro_version, glib_interface_age, glib_binary_age); #endif /* SYMBIAN */ #ifndef EMULATOR mkdir("C:\\Private\\e000002c", 0666); chdir("C:\\Private\\e000002c"); #endif//EMULATOR string = g_get_current_dir (); g_assert(!strcmp(string,"C:\\Private\\e000002c")); string = (char *)g_get_user_name (); g_assert(!strcmp(string,"root")); string = (char *)g_get_real_name (); g_assert(!strcmp(string,"Unknown")); string = (char *)g_get_host_name (); gethostname(hostname,256); g_assert(!strcmp(string,hostname)); s = g_get_home_dir (); g_assert(!strcmp(s,"C:\\Private\\e000002c") && "Wrong value for g_get_home_dir()"); s = g_get_user_data_dir (); g_assert(!strcmp(s,"C:\\Private\\e000002c")); s = g_get_user_config_dir (); g_assert(!strcmp(s,"C:\\Private\\e000002c")); s = g_get_user_cache_dir (); g_assert(!strcmp(s,"C:\\Private\\e000002c")); sv = (gchar **) g_get_system_data_dirs ();
static void draw_info_header (GtkPrintContext *context, cairo_t *cr, PrintData *data) { PangoLayout *layout; PangoFontDescription *desc; gdouble text_height; gdouble text_width; gdouble fname_text_width; gint layout_height; gint layout_width; gchar date_buffer[100]; GDate *date; const gchar *name_str; GimpParasite *parasite; const gchar *end_ptr; gchar *filename; gdouble cr_width; cairo_save (cr); cr_width = gtk_print_context_get_width (context); cairo_rectangle (cr, 0, 0, cr_width, HEADER_HEIGHT); cairo_set_source_rgb (cr, 0.8, 0.8, 0.8); cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0, 0, 0); cairo_set_line_width (cr, 1); cairo_stroke (cr); layout = gtk_print_context_create_pango_layout (context); desc = pango_font_description_from_string ("sans 14"); pango_layout_set_font_description (layout, desc); pango_font_description_free (desc); pango_layout_set_width (layout, -1); pango_layout_set_alignment (layout, PANGO_ALIGN_CENTER); /* image name */ pango_layout_set_text (layout, gimp_image_get_name (data->image_id), -1); pango_layout_get_size (layout, &layout_width, &layout_height); text_height = (gdouble) layout_height / PANGO_SCALE; cairo_move_to (cr, 0.02 * cr_width, (HEADER_HEIGHT - text_height) / 5); pango_cairo_show_layout (cr, layout); /* user name */ name_str = g_get_real_name (); if (name_str && g_utf8_validate (name_str, -1, &end_ptr)) { pango_layout_set_text (layout, name_str, -1); pango_layout_get_size (layout, &layout_width, &layout_height); text_height = (gdouble) layout_height / PANGO_SCALE; text_width = (gdouble) layout_width / PANGO_SCALE; cairo_move_to (cr, 0.5 * cr_width - 0.5 * text_width, (HEADER_HEIGHT - text_height) / 5); pango_cairo_show_layout (cr, layout); } /* date */ date = g_date_new (); g_date_set_time_t (date, time (NULL)); g_date_strftime (date_buffer, 100, "%x", date); g_date_free (date); pango_layout_set_text (layout, date_buffer, -1); pango_layout_get_size (layout, &layout_width, &layout_height); text_height = (gdouble) layout_height / PANGO_SCALE; text_width = (gdouble) layout_width / PANGO_SCALE; cairo_move_to (cr, 0.98 * cr_width - text_width, (HEADER_HEIGHT - text_height) / 5); pango_cairo_show_layout (cr, layout); /* file name if any */ filename = gimp_image_get_filename (data->image_id); if (filename) { pango_layout_set_text (layout, gimp_filename_to_utf8 (filename), -1); g_free (filename); pango_layout_get_size (layout, &layout_width, &layout_height); text_height = (gdouble) layout_height / PANGO_SCALE; fname_text_width = (gdouble) layout_width / PANGO_SCALE; cairo_move_to (cr, 0.02 * cr_width, 4 * (HEADER_HEIGHT - text_height) / 5); pango_cairo_show_layout (cr, layout); } else { fname_text_width = 0; } /* image comment if it is short */ parasite = gimp_image_parasite_find (data->image_id, "gimp-comment"); if (parasite) { pango_layout_set_text (layout, gimp_parasite_data (parasite), -1); pango_layout_get_size (layout, &layout_width, &layout_height); text_height = (gdouble) layout_height / PANGO_SCALE; text_width = (gdouble) layout_width / PANGO_SCALE; if (fname_text_width + text_width < 0.8 * cr_width && text_height < 0.5 * HEADER_HEIGHT) { cairo_move_to (cr, 0.98 * cr_width - text_width, 4 * (HEADER_HEIGHT - text_height) / 5); pango_cairo_show_layout (cr, layout); } gimp_parasite_free (parasite); } g_object_unref (layout); cairo_restore (cr); }
gboolean gs_plugin_review_submit (GsPlugin *plugin, GsApp *app, AsReview *review, GCancellable *cancellable, GError **error) { GsPluginData *priv = gs_plugin_get_data (plugin); g_autofree gchar *data = NULL; g_autofree gchar *uri = NULL; g_autofree gchar *version = NULL; g_autoptr(JsonBuilder) builder = NULL; g_autoptr(JsonGenerator) json_generator = NULL; g_autoptr(JsonNode) json_root = NULL; /* save as we don't re-request the review from the server */ as_review_set_reviewer_name (review, g_get_real_name ()); as_review_add_metadata (review, "app_id", gs_app_get_id (app)); as_review_add_metadata (review, "user_skey", gs_app_get_metadata_item (app, "ODRS::user_skey")); /* create object with review data */ builder = json_builder_new (); json_builder_begin_object (builder); json_builder_set_member_name (builder, "user_hash"); json_builder_add_string_value (builder, priv->user_hash); json_builder_set_member_name (builder, "user_skey"); json_builder_add_string_value (builder, as_review_get_metadata_item (review, "user_skey")); json_builder_set_member_name (builder, "app_id"); json_builder_add_string_value (builder, as_review_get_metadata_item (review, "app_id")); json_builder_set_member_name (builder, "locale"); json_builder_add_string_value (builder, gs_plugin_get_locale (plugin)); json_builder_set_member_name (builder, "distro"); json_builder_add_string_value (builder, priv->distro); json_builder_set_member_name (builder, "version"); version = gs_plugin_odrs_sanitize_version (as_review_get_version (review)); json_builder_add_string_value (builder, version); json_builder_set_member_name (builder, "user_display"); json_builder_add_string_value (builder, as_review_get_reviewer_name (review)); json_builder_set_member_name (builder, "summary"); json_builder_add_string_value (builder, as_review_get_summary (review)); json_builder_set_member_name (builder, "description"); json_builder_add_string_value (builder, as_review_get_description (review)); json_builder_set_member_name (builder, "rating"); json_builder_add_int_value (builder, as_review_get_rating (review)); json_builder_end_object (builder); /* export as a string */ json_root = json_builder_get_root (builder); json_generator = json_generator_new (); json_generator_set_pretty (json_generator, TRUE); json_generator_set_root (json_generator, json_root); data = json_generator_to_data (json_generator, NULL); /* clear cache */ if (!gs_plugin_odrs_invalidate_cache (review, error)) return FALSE; /* POST */ uri = g_strdup_printf ("%s/submit", priv->review_server); return gs_plugin_odrs_json_post (gs_plugin_get_soup_session (plugin), uri, data, error); }
GLIB_MINOR_VERSION, GLIB_MICRO_VERSION - GLIB_BINARY_AGE); #endif g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n", glib_major_version, glib_minor_version, glib_micro_version, glib_interface_age, glib_binary_age); string = g_get_current_dir (); g_print ("cwd: %s\n", string); g_free (string); g_print ("user: %s\n", g_get_user_name ()); g_print ("real: %s\n", g_get_real_name ()); g_print ("home: %s\n", g_get_home_dir ()); g_print ("tmp-dir: %s\n", g_get_tmp_dir ()); /* type sizes */ g_print ("checking size of gint8: %d", (int)sizeof (gint8)); TEST (NULL, sizeof (gint8) == 1); g_print ("\nchecking size of gint16: %d", (int)sizeof (gint16)); TEST (NULL, sizeof (gint16) == 2); g_print ("\nchecking size of gint32: %d", (int)sizeof (gint32)); TEST (NULL, sizeof (gint32) == 4); g_print ("\nchecking size of gsize: %d", (int)sizeof (gsize)); #ifdef G_HAVE_GINT64 g_print ("\nchecking size of gint64: %d", (int)sizeof (gint64)); TEST (NULL, sizeof (gint64) == 8); #endif /* G_HAVE_GINT64 */
int main (int argc, char *argv[]) { GList *list, *t; GSList *slist, *st; GHashTable *hash_table; GMemChunk *mem_chunk; GStringChunk *string_chunk; GTimer *timer; gint nums[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; gint morenums[10] = { 8, 9, 7, 0, 3, 2, 5, 1, 4, 6}; gchar *string; gchar *mem[10000], *tmp_string = NULL, *tmp_string_2; gint i, j; GArray *garray; GPtrArray *gparray; GByteArray *gbarray; GString *string1, *string2; GTree *tree; char chars[62]; GRelation *relation; GTuples *tuples; gint data [1024]; struct { gchar *filename; gchar *dirname; } dirname_checks[] = { #ifndef NATIVE_WIN32 { "/", "/" }, { "////", "/" }, { ".////", "." }, { ".", "." }, { "..", "." }, { "../", ".." }, { "..////", ".." }, { "", "." }, { "a/b", "a" }, { "a/b/", "a/b" }, { "c///", "c" }, #else { "\\", "\\" }, { ".\\\\\\\\", "." }, { ".", "." }, { "..", "." }, { "..\\", ".." }, { "..\\\\\\\\", ".." }, { "", "." }, { "a\\b", "a" }, { "a\\b\\", "a\\b" }, { "c\\\\\\", "c" }, #endif }; guint n_dirname_checks = sizeof (dirname_checks) / sizeof (dirname_checks[0]); guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U; guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U; #ifdef G_HAVE_GINT64 guint64 gu64t1 = G_GINT64_CONSTANT(0x1d636b02300a7aa7U), gu64t2 = G_GINT64_CONSTANT(0xa77a0a30026b631dU); #endif g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n", glib_major_version, glib_minor_version, glib_micro_version, glib_interface_age, glib_binary_age); string = g_get_current_dir (); g_print ("cwd: %s\n", string); g_free (string); g_print ("user: %s\n", g_get_user_name ()); g_print ("real: %s\n", g_get_real_name ()); g_print ("home: %s\n", g_get_home_dir ()); g_print ("tmp-dir: %s\n", g_get_tmp_dir ()); /* type sizes */ g_print ("checking size of gint8: %d", (int)sizeof (gint8)); TEST (NULL, sizeof (gint8) == 1); g_print ("\nchecking size of gint16: %d", (int)sizeof (gint16)); TEST (NULL, sizeof (gint16) == 2); g_print ("\nchecking size of gint32: %d", (int)sizeof (gint32)); TEST (NULL, sizeof (gint32) == 4); #ifdef G_HAVE_GINT64 g_print ("\nchecking size of gint64: %d", (int)sizeof (gint64)); TEST (NULL, sizeof (gint64) == 8); #endif /* G_HAVE_GINT64 */ g_print ("\n"); g_print ("checking g_dirname()..."); for (i = 0; i < n_dirname_checks; i++) { gchar *dirname; dirname = g_dirname (dirname_checks[i].filename); if (strcmp (dirname, dirname_checks[i].dirname) != 0) { g_print ("\nfailed for \"%s\"==\"%s\" (returned: \"%s\")\n", dirname_checks[i].filename, dirname_checks[i].dirname, dirname); n_dirname_checks = 0; } g_free (dirname); } if (n_dirname_checks) g_print ("ok\n"); g_print ("checking doubly linked lists..."); list = NULL; for (i = 0; i < 10; i++) list = g_list_append (list, &nums[i]); list = g_list_reverse (list); for (i = 0; i < 10; i++) { t = g_list_nth (list, i); if (*((gint*) t->data) != (9 - i)) g_error ("Regular insert failed"); } for (i = 0; i < 10; i++) if(g_list_position(list, g_list_nth (list, i)) != i) g_error("g_list_position does not seem to be the inverse of g_list_nth\n"); g_list_free (list); list = NULL; for (i = 0; i < 10; i++) list = g_list_insert_sorted (list, &morenums[i], my_list_compare_one); /* g_print("\n"); g_list_foreach (list, my_list_print, NULL); */ for (i = 0; i < 10; i++) { t = g_list_nth (list, i); if (*((gint*) t->data) != i) g_error ("Sorted insert failed"); } g_list_free (list); list = NULL; for (i = 0; i < 10; i++) list = g_list_insert_sorted (list, &morenums[i], my_list_compare_two); /* g_print("\n"); g_list_foreach (list, my_list_print, NULL); */ for (i = 0; i < 10; i++) { t = g_list_nth (list, i); if (*((gint*) t->data) != (9 - i)) g_error ("Sorted insert failed"); } g_list_free (list); list = NULL; for (i = 0; i < 10; i++) list = g_list_prepend (list, &morenums[i]); list = g_list_sort (list, my_list_compare_two); /* g_print("\n"); g_list_foreach (list, my_list_print, NULL); */ for (i = 0; i < 10; i++) { t = g_list_nth (list, i); if (*((gint*) t->data) != (9 - i)) g_error ("Merge sort failed"); } g_list_free (list); g_print ("ok\n"); g_print ("checking singly linked lists..."); slist = NULL; for (i = 0; i < 10; i++) slist = g_slist_append (slist, &nums[i]); slist = g_slist_reverse (slist); for (i = 0; i < 10; i++) { st = g_slist_nth (slist, i); if (*((gint*) st->data) != (9 - i)) g_error ("failed"); } g_slist_free (slist); slist = NULL; for (i = 0; i < 10; i++) slist = g_slist_insert_sorted (slist, &morenums[i], my_list_compare_one); /* g_print("\n"); g_slist_foreach (slist, my_list_print, NULL); */ for (i = 0; i < 10; i++) { st = g_slist_nth (slist, i); if (*((gint*) st->data) != i) g_error ("Sorted insert failed"); } g_slist_free(slist); slist = NULL; for (i = 0; i < 10; i++) slist = g_slist_insert_sorted (slist, &morenums[i], my_list_compare_two); /* g_print("\n"); g_slist_foreach (slist, my_list_print, NULL); */ for (i = 0; i < 10; i++) { st = g_slist_nth (slist, i); if (*((gint*) st->data) != (9 - i)) g_error("Sorted insert failed"); } g_slist_free(slist); slist = NULL; for (i = 0; i < 10; i++) slist = g_slist_prepend (slist, &morenums[i]); slist = g_slist_sort (slist, my_list_compare_two); /* g_print("\n"); g_slist_foreach (slist, my_list_print, NULL); */ for (i = 0; i < 10; i++) { st = g_slist_nth (slist, i); if (*((gint*) st->data) != (9 - i)) g_error("Sorted insert failed"); } g_slist_free(slist); g_print ("ok\n"); g_print ("checking binary trees...\n"); tree = g_tree_new (my_compare); i = 0; for (j = 0; j < 10; j++, i++) { chars[i] = '0' + j; g_tree_insert (tree, &chars[i], &chars[i]); } for (j = 0; j < 26; j++, i++) { chars[i] = 'A' + j; g_tree_insert (tree, &chars[i], &chars[i]); } for (j = 0; j < 26; j++, i++) { chars[i] = 'a' + j; g_tree_insert (tree, &chars[i], &chars[i]); } g_print ("tree height: %d\n", g_tree_height (tree)); g_print ("tree nnodes: %d\n", g_tree_nnodes (tree)); g_print ("tree: "); g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL); g_print ("\n"); for (i = 0; i < 10; i++) g_tree_remove (tree, &chars[i]); g_print ("tree height: %d\n", g_tree_height (tree)); g_print ("tree nnodes: %d\n", g_tree_nnodes (tree)); g_print ("tree: "); g_tree_traverse (tree, my_traverse, G_IN_ORDER, NULL); g_print ("\n"); g_print ("ok\n"); /* check n-way trees */ g_node_test (); g_print ("checking mem chunks..."); mem_chunk = g_mem_chunk_new ("test mem chunk", 50, 100, G_ALLOC_AND_FREE); for (i = 0; i < 10000; i++) { mem[i] = g_chunk_new (gchar, mem_chunk); for (j = 0; j < 50; j++) mem[i][j] = i * j; } for (i = 0; i < 10000; i++) { g_mem_chunk_free (mem_chunk, mem[i]); } g_print ("ok\n"); g_print ("checking hash tables..."); hash_table = g_hash_table_new (my_hash, my_hash_compare); for (i = 0; i < 10000; i++) { array[i] = i; g_hash_table_insert (hash_table, &array[i], &array[i]); } g_hash_table_foreach (hash_table, my_hash_callback, NULL); for (i = 0; i < 10000; i++) if (array[i] == 0) g_print ("%d\n", i); for (i = 0; i < 10000; i++) g_hash_table_remove (hash_table, &array[i]); for (i = 0; i < 10000; i++) { array[i] = i; g_hash_table_insert (hash_table, &array[i], &array[i]); } if (g_hash_table_foreach_remove (hash_table, my_hash_callback_remove, NULL) != 5000 || g_hash_table_size (hash_table) != 5000) g_print ("bad!\n"); g_hash_table_foreach (hash_table, my_hash_callback_remove_test, NULL); g_hash_table_destroy (hash_table); g_print ("ok\n"); g_print ("checking string chunks..."); string_chunk = g_string_chunk_new (1024); for (i = 0; i < 100000; i ++) { tmp_string = g_string_chunk_insert (string_chunk, "hi pete"); if (strcmp ("hi pete", tmp_string) != 0) g_error ("string chunks are broken.\n"); } tmp_string_2 = g_string_chunk_insert_const (string_chunk, tmp_string); g_assert (tmp_string_2 != tmp_string && strcmp(tmp_string_2, tmp_string) == 0); tmp_string = g_string_chunk_insert_const (string_chunk, tmp_string); g_assert (tmp_string_2 == tmp_string); g_string_chunk_free (string_chunk); g_print ("ok\n"); g_print ("checking arrays..."); garray = g_array_new (FALSE, FALSE, sizeof (gint)); for (i = 0; i < 10000; i++) g_array_append_val (garray, i); for (i = 0; i < 10000; i++) if (g_array_index (garray, gint, i) != i) g_print ("uh oh: %d ( %d )\n", g_array_index (garray, gint, i), i); g_array_free (garray, TRUE); garray = g_array_new (FALSE, FALSE, sizeof (gint)); for (i = 0; i < 100; i++) g_array_prepend_val (garray, i); for (i = 0; i < 100; i++) if (g_array_index (garray, gint, i) != (100 - i - 1)) g_print ("uh oh: %d ( %d )\n", g_array_index (garray, gint, i), 100 - i - 1); g_array_free (garray, TRUE); g_print ("ok\n"); g_print ("checking strings..."); string1 = g_string_new ("hi pete!"); string2 = g_string_new (""); g_assert (strcmp ("hi pete!", string1->str) == 0); for (i = 0; i < 10000; i++) g_string_append_c (string1, 'a'+(i%26)); #if !(defined (_MSC_VER) || defined (__LCC__)) /* MSVC and LCC use the same run-time C library, which doesn't like the %10000.10000f format... */ g_string_sprintf (string2, "%s|%0100d|%s|%s|%0*d|%*.*f|%10000.10000f", "this pete guy sure is a wuss, like he's the number ", 1, " wuss. everyone agrees.\n", string1->str, 10, 666, 15, 15, 666.666666666, 666.666666666); #else g_string_sprintf (string2, "%s|%0100d|%s|%s|%0*d|%*.*f|%100.100f", "this pete guy sure is a wuss, like he's the number ", 1, " wuss. everyone agrees.\n", string1->str, 10, 666, 15, 15, 666.666666666, 666.666666666); #endif g_print ("string2 length = %d...\n", string2->len); string2->str[70] = '\0'; g_print ("first 70 chars:\n%s\n", string2->str); string2->str[141] = '\0'; g_print ("next 70 chars:\n%s\n", string2->str+71); string2->str[212] = '\0'; g_print ("and next 70:\n%s\n", string2->str+142); g_print ("last 70 chars:\n%s\n", string2->str+string2->len - 70); g_print ("ok\n"); g_print ("checking timers...\n"); timer = g_timer_new (); g_print (" spinning for 3 seconds...\n"); g_timer_start (timer); while (g_timer_elapsed (timer, NULL) < 3) ; g_timer_stop (timer); g_timer_destroy (timer); g_print ("ok\n"); g_print ("checking g_strcasecmp..."); g_assert (g_strcasecmp ("FroboZZ", "frobozz") == 0); g_assert (g_strcasecmp ("frobozz", "frobozz") == 0); g_assert (g_strcasecmp ("frobozz", "FROBOZZ") == 0); g_assert (g_strcasecmp ("FROBOZZ", "froboz") != 0); g_assert (g_strcasecmp ("", "") == 0); g_assert (g_strcasecmp ("!#%&/()", "!#%&/()") == 0); g_assert (g_strcasecmp ("a", "b") < 0); g_assert (g_strcasecmp ("a", "B") < 0); g_assert (g_strcasecmp ("A", "b") < 0); g_assert (g_strcasecmp ("A", "B") < 0); g_assert (g_strcasecmp ("b", "a") > 0); g_assert (g_strcasecmp ("b", "A") > 0); g_assert (g_strcasecmp ("B", "a") > 0); g_assert (g_strcasecmp ("B", "A") > 0); g_print ("ok\n"); g_print ("checking g_strdup..."); g_assert(g_strdup(NULL) == NULL); string = g_strdup(GLIB_TEST_STRING); g_assert(string != NULL); g_assert(strcmp(string, GLIB_TEST_STRING) == 0); g_free(string); g_print ("ok\n"); g_print ("checking g_strconcat..."); string = g_strconcat(GLIB_TEST_STRING, NULL); g_assert(string != NULL); g_assert(strcmp(string, GLIB_TEST_STRING) == 0); g_free(string); string = g_strconcat(GLIB_TEST_STRING, GLIB_TEST_STRING, GLIB_TEST_STRING, NULL); g_assert(string != NULL); g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING GLIB_TEST_STRING) == 0); g_free(string); g_print ("ok\n"); g_print ("checking g_strdup_printf..."); string = g_strdup_printf ("%05d %-5s", 21, "test"); g_assert (string != NULL); g_assert (strcmp(string, "00021 test ") == 0); g_free (string); g_print ("ok\n"); /* g_debug (argv[0]); */ /* Relation tests */ g_print ("checking relations..."); relation = g_relation_new (2); g_relation_index (relation, 0, g_int_hash, g_int_equal); g_relation_index (relation, 1, g_int_hash, g_int_equal); for (i = 0; i < 1024; i += 1) data[i] = i; for (i = 1; i < 1023; i += 1) { g_relation_insert (relation, data + i, data + i + 1); g_relation_insert (relation, data + i, data + i - 1); } for (i = 2; i < 1022; i += 1) { g_assert (! g_relation_exists (relation, data + i, data + i)); g_assert (! g_relation_exists (relation, data + i, data + i + 2)); g_assert (! g_relation_exists (relation, data + i, data + i - 2)); } for (i = 1; i < 1023; i += 1) { g_assert (g_relation_exists (relation, data + i, data + i + 1)); g_assert (g_relation_exists (relation, data + i, data + i - 1)); } for (i = 2; i < 1022; i += 1) { g_assert (g_relation_count (relation, data + i, 0) == 2); g_assert (g_relation_count (relation, data + i, 1) == 2); } g_assert (g_relation_count (relation, data, 0) == 0); g_assert (g_relation_count (relation, data + 42, 0) == 2); g_assert (g_relation_count (relation, data + 43, 1) == 2); g_assert (g_relation_count (relation, data + 41, 1) == 2); g_relation_delete (relation, data + 42, 0); g_assert (g_relation_count (relation, data + 42, 0) == 0); g_assert (g_relation_count (relation, data + 43, 1) == 1); g_assert (g_relation_count (relation, data + 41, 1) == 1); tuples = g_relation_select (relation, data + 200, 0); g_assert (tuples->len == 2); #if 0 for (i = 0; i < tuples->len; i += 1) { printf ("%d %d\n", *(gint*) g_tuples_index (tuples, i, 0), *(gint*) g_tuples_index (tuples, i, 1)); } #endif g_assert (g_relation_exists (relation, data + 300, data + 301)); g_relation_delete (relation, data + 300, 0); g_assert (!g_relation_exists (relation, data + 300, data + 301)); g_tuples_destroy (tuples); g_relation_destroy (relation); relation = NULL; g_print ("ok\n"); g_print ("checking pointer arrays..."); gparray = g_ptr_array_new (); for (i = 0; i < 10000; i++) g_ptr_array_add (gparray, GINT_TO_POINTER (i)); for (i = 0; i < 10000; i++) if (g_ptr_array_index (gparray, i) != GINT_TO_POINTER (i)) g_print ("array fails: %p ( %p )\n", g_ptr_array_index (gparray, i), GINT_TO_POINTER (i)); g_ptr_array_free (gparray, TRUE); g_print ("ok\n"); g_print ("checking byte arrays..."); gbarray = g_byte_array_new (); for (i = 0; i < 10000; i++) g_byte_array_append (gbarray, (guint8*) "abcd", 4); for (i = 0; i < 10000; i++) { g_assert (gbarray->data[4*i] == 'a'); g_assert (gbarray->data[4*i+1] == 'b'); g_assert (gbarray->data[4*i+2] == 'c'); g_assert (gbarray->data[4*i+3] == 'd'); } g_byte_array_free (gbarray, TRUE); g_print ("ok\n"); g_printerr ("g_log tests:"); g_warning ("harmless warning with parameters: %d %s %#x", 42, "Boo", 12345); g_message ("the next warning is a test:"); string = NULL; g_print (string); g_print ("checking endian macros (host is "); #if G_BYTE_ORDER == G_BIG_ENDIAN g_print ("big endian)..."); #else g_print ("little endian)..."); #endif g_assert (GUINT16_SWAP_LE_BE (gu16t1) == gu16t2); g_assert (GUINT32_SWAP_LE_BE (gu32t1) == gu32t2); #ifdef G_HAVE_GINT64 g_assert (GUINT64_SWAP_LE_BE (gu64t1) == gu64t2); #endif g_print ("ok\n"); return 0; }
static void account_widget_irc_setup (EmpathyAccountWidgetIrc *settings) { const gchar *nick = NULL; const gchar *fullname = NULL; const gchar *server = NULL; gint port = 6667; const gchar *charset; gboolean ssl = FALSE; EmpathyIrcNetwork *network = NULL; EmpathyAccountSettings *ac_settings; g_object_get (settings->self, "settings", &ac_settings, NULL); nick = empathy_account_settings_get_string (ac_settings, "account"); fullname = empathy_account_settings_get_string (ac_settings, "fullname"); server = empathy_account_settings_get_string (ac_settings, "server"); charset = empathy_account_settings_get_string (ac_settings, "charset"); port = empathy_account_settings_get_uint32 (ac_settings, "port"); ssl = empathy_account_settings_get_boolean (ac_settings, "use-ssl"); if (!nick) { nick = g_strdup (g_get_user_name ()); empathy_account_settings_set_string (ac_settings, "account", nick); } if (!fullname) { fullname = g_strdup (g_get_real_name ()); if (!fullname) { fullname = g_strdup (nick); } empathy_account_settings_set_string (ac_settings, "fullname", fullname); } if (server != NULL) { GtkListStore *store; network = empathy_irc_network_manager_find_network_by_address ( settings->network_manager, server); store = GTK_LIST_STORE (gtk_combo_box_get_model ( GTK_COMBO_BOX (settings->combobox_network))); if (network != NULL) { gchar *name; g_object_set (network, "charset", charset, NULL); g_object_get (network, "name", &name, NULL); DEBUG ("Account use network %s", name); g_free (name); } else { /* We don't have this network. Let's create it */ EmpathyIrcServer *srv; GtkTreeIter iter; DEBUG ("Create a network %s", server); network = empathy_irc_network_new (server); srv = empathy_irc_server_new (server, port, ssl); empathy_irc_network_append_server (network, srv); empathy_irc_network_manager_add (settings->network_manager, network); gtk_list_store_insert_with_values (store, &iter, -1, COL_NETWORK_OBJ, network, COL_NETWORK_NAME, server, -1); gtk_combo_box_set_active_iter ( GTK_COMBO_BOX (settings->combobox_network), &iter); g_object_unref (srv); g_object_unref (network); } } fill_networks_model (settings, network); }
static EaseSlide* ease_welcome_actor_create_slide (EaseWelcomeActor* self, gint w, gint h) { #line 366 "ease-welcome-actor.c" EaseSlide* result = NULL; EaseSlide* slide; #line 224 "ease-welcome-actor.vala" g_return_val_if_fail (self != NULL, NULL); #line 226 "ease-welcome-actor.vala" slide = ease_theme_create_slide (self->priv->_theme, EASE_WELCOME_ACTOR_PREVIEW_SLIDE, w, h); #line 373 "ease-welcome-actor.c" { EaseSlideIterator* _element_it; #line 228 "ease-welcome-actor.vala" _element_it = ease_slide_iterator (slide); #line 228 "ease-welcome-actor.vala" while (TRUE) { #line 380 "ease-welcome-actor.c" EaseElement* element; const char* _tmp2_; GQuark _tmp3_; #line 228 "ease-welcome-actor.vala" if (!ease_slide_iterator_next (_element_it)) { #line 228 "ease-welcome-actor.vala" break; #line 388 "ease-welcome-actor.c" } #line 228 "ease-welcome-actor.vala" element = ease_slide_iterator_get (_element_it); #line 230 "ease-welcome-actor.vala" ease_element_set_has_been_edited (element, TRUE); #line 394 "ease-welcome-actor.c" _tmp2_ = ease_element_get_identifier (element); _tmp3_ = (NULL == _tmp2_) ? 0 : g_quark_from_string (_tmp2_); if (_tmp3_ == g_quark_from_string (EASE_THEME_TITLE_TEXT)) switch (0) { default: { EaseElement* _tmp0_; #line 234 "ease-welcome-actor.vala" ease_text_element_set_text ((_tmp0_ = element, EASE_IS_TEXT_ELEMENT (_tmp0_) ? ((EaseTextElement*) _tmp0_) : NULL), self->priv->_theme->title); #line 235 "ease-welcome-actor.vala" break; #line 406 "ease-welcome-actor.c" } } else if (_tmp3_ == g_quark_from_string (EASE_THEME_AUTHOR_TEXT)) switch (0) { default: { EaseElement* _tmp1_; #line 237 "ease-welcome-actor.vala" ease_text_element_set_text ((_tmp1_ = element, EASE_IS_TEXT_ELEMENT (_tmp1_) ? ((EaseTextElement*) _tmp1_) : NULL), g_get_real_name ()); #line 238 "ease-welcome-actor.vala" break; #line 417 "ease-welcome-actor.c" } } _g_object_unref0 (element); } _ease_slide_iterator_unref0 (_element_it); } result = slide; #line 242 "ease-welcome-actor.vala" return result; #line 427 "ease-welcome-actor.c" }
void panel_menu_items_append_lock_logout (GtkWidget *menu) { gboolean separator_inserted; GList *children; GList *last; GtkWidget *item; const char *translate; char *label; char *tooltip; separator_inserted = FALSE; children = gtk_container_get_children (GTK_CONTAINER (menu)); last = g_list_last (children); if (last != NULL) { separator_inserted = GTK_IS_SEPARATOR (GTK_WIDGET (last->data)); } g_list_free (children); if (panel_lock_screen_action_available("lock")) { item = panel_menu_items_create_action_item(PANEL_ACTION_LOCK); if (item != NULL) { if (!separator_inserted) { add_menu_separator(menu); separator_inserted = TRUE; } gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); } } if (panel_lockdown_get_disable_log_out ()) return; /* Below this, we only have log out/shutdown items */ /* Translators: translate "1" (msgctxt: "panel:showusername") to anything * but "1" if "Log Out %s" doesn't make any sense in your * language (where %s is a username). */ translate = C_("panel:showusername", "1"); if (strcmp (translate, "1") == 0) { const char *user_name; user_name = g_get_real_name (); if (!user_name || !user_name [0]) user_name = g_get_user_name (); /* keep those strings in sync with the ones in * panel-action-button.c */ /* Translators: this string is used ONLY if you translated * "1" (msgctxt: "panel:showusername") to "1" */ label = g_strdup_printf (_("Log Out %s..."), g_get_user_name ()); /* Translators: this string is used ONLY if you translated * "1" (msgctxt: "panel:showusername") to "1" */ tooltip = g_strdup_printf (_("Log out %s of this session to " "log in as a different user"), user_name); } else { label = NULL; tooltip = NULL; } item = panel_menu_items_create_action_item_full (PANEL_ACTION_LOGOUT, label, tooltip); g_free (label); g_free (tooltip); if (item != NULL) { if (!separator_inserted) { add_menu_separator (menu); separator_inserted = TRUE; } gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } item = panel_menu_items_create_action_item (PANEL_ACTION_SHUTDOWN); if (item != NULL && !g_getenv("LTSP_CLIENT")) { if (!separator_inserted) add_menu_separator (menu); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); } }
static gboolean gsm_logout_dialog_timeout (gpointer data) { GsmLogoutDialog *logout_dialog; char *seconds_warning; char *secondary_text; static char *session_type = NULL; static gboolean is_not_login; logout_dialog = (GsmLogoutDialog *) data; if (!logout_dialog->priv->timeout) { gtk_dialog_response (GTK_DIALOG (logout_dialog), logout_dialog->priv->default_response); return FALSE; } switch (logout_dialog->priv->type) { case GSM_DIALOG_LOGOUT_TYPE_LOGOUT: seconds_warning = ngettext ("You will be automatically logged " "out in %d second", "You will be automatically logged " "out in %d seconds", logout_dialog->priv->timeout); break; case GSM_DIALOG_LOGOUT_TYPE_SHUTDOWN: seconds_warning = ngettext ("This system will be automatically " "shut down in %d second", "This system will be automatically " "shut down in %d seconds", logout_dialog->priv->timeout); break; default: g_assert_not_reached (); } seconds_warning = g_strdup_printf (seconds_warning, logout_dialog->priv->timeout); if (session_type == NULL) { #ifdef HAVE_SYSTEMD if (LOGIND_RUNNING()) { GsmSystemd *systemd; systemd = gsm_get_systemd (); session_type = gsm_systemd_get_current_session_type (systemd); g_object_unref (systemd); is_not_login = (g_strcmp0 (session_type, GSM_SYSTEMD_SESSION_TYPE_LOGIN_WINDOW) != 0); } else { #endif GsmConsolekit *consolekit; consolekit = gsm_get_consolekit (); session_type = gsm_consolekit_get_current_session_type (consolekit); g_object_unref (consolekit); is_not_login = (g_strcmp0 (session_type, GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW) != 0); #ifdef HAVE_SYSTEMD } #endif } if (is_not_login) { char *name; name = g_locale_to_utf8 (g_get_real_name (), -1, NULL, NULL, NULL); if (!name || name[0] == '\0' || strcmp (name, "Unknown") == 0) { name = g_locale_to_utf8 (g_get_user_name (), -1 , NULL, NULL, NULL); } if (!name) { name = g_strdup (g_get_user_name ()); } secondary_text = g_strdup_printf (_("You are currently logged in as \"%s\"."), name); g_free (name); } else { secondary_text = g_strdup (seconds_warning); } gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), logout_dialog->priv->timeout / 60.0); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (logout_dialog->priv->progressbar), seconds_warning); gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (logout_dialog), secondary_text, NULL); logout_dialog->priv->timeout--; g_free (secondary_text); g_free (seconds_warning); return TRUE; }
static VALUE rg_s_real_name(G_GNUC_UNUSED VALUE self) { return CSTR2RVAL(g_get_real_name()); }
static void gsm_logout_set_info_text (GsmLogoutDialog *logout_dialog, int seconds) { const char *info_text; char *markup = NULL; static char *session_type = NULL; switch (logout_dialog->priv->default_response) { case GSM_LOGOUT_RESPONSE_LOGOUT: info_text = ngettext ("You will be automatically logged " "out in %d second.", "You will be automatically logged " "out in %d seconds.", seconds); break; case GSM_LOGOUT_RESPONSE_SHUTDOWN: info_text = ngettext ("This system will be automatically " "shut down in %d second.", "This system will be automatically " "shut down in %d seconds.", seconds); break; case GTK_RESPONSE_CANCEL: info_text = NULL; break; default: g_assert_not_reached (); } if (session_type == NULL) { GsmConsolekit *consolekit; consolekit = gsm_get_consolekit (); session_type = gsm_consolekit_get_current_session_type (consolekit); g_object_unref (consolekit); } if (g_strcmp0 (session_type, GSM_CONSOLEKIT_SESSION_TYPE_LOGIN_WINDOW) != 0) { char *name, *buf, *buf2; name = g_locale_to_utf8 (g_get_real_name (), -1, NULL, NULL, NULL); if (!name || name[0] == '\0' || strcmp (name, "Unknown") == 0) { name = g_locale_to_utf8 (g_get_user_name (), -1 , NULL, NULL, NULL); } if (!name) { name = g_strdup (g_get_user_name ()); } buf = g_strdup_printf (_("You are currently logged in as \"%s\"."), name); if (info_text != NULL) { buf2 = g_strdup_printf (info_text, seconds); markup = g_markup_printf_escaped ("<i>%s</i>", g_strconcat (buf, "\n", buf2, NULL)); g_free (buf2); } else { markup = g_markup_printf_escaped ("<i>%s</i>", buf); } g_free (buf); g_free (name); } else if (info_text != NULL) { char *buf2; buf2 = g_strdup_printf (info_text, seconds); markup = g_markup_printf_escaped ("<i>%s</i>", buf2); g_free (buf2); } gtk_label_set_markup (GTK_LABEL (logout_dialog->priv->info_label), markup ? markup : ""); if (markup != NULL) g_free (markup); }