DELTA 29360 0 332
SVN  †  †    …•j  Š…•i†  ÊcÊd Êc oENDREP
DELTA 4313 143374 2213
SVN   ‚‘…Í …8 €H o…h€‚ N‡?‘ \ˆ± $‰o€X N‡?š C‘ €‚? N‡?€\ C‘ € N‡?€ ‚hœ€ C‡?ž A‘ € C‡?­ A‘ µ C‡?¥ A‘ €[ C‡?™ A‘ € C‡?™ A‘ €
 C‡?¬ A‘ €‚% C‡?² A‘ €
 C‡?§ A‘ €u C‡?¬ A‘ €y N‡?€T C‘ €ƒ	 N‡?• C‘ €ƒ N‡?€W C‘ €„v N‡?© C‘ €s I‡?€G C‘ €„f N‡?š C‘ €4 N‡?¸ C‘ € N‡?¶ C‘ €†M N‡?€
 C‘ €‚i N‡?€ C‘ €„V RŽ » C‘ €ƒ N‡?§ C‘ €‚U N‡?Ÿ C‘ €‰3 M‡?± C‘ €‚F RŽ €‚Q C‘ €£ N‡?¬ C‘ €‚4 N‡?€I C‘ €…? N‡?€J C‘ €‚C N‡? C‘ €‚ N‡? C‘ €^ N‡?§ C‘ €„ N‡?­ C‘ €„B N‡?¤ C‘ €t N‡?· C‘ €†; N‡?ª C‘ €… N‡?— C‘ €ƒ2 N‡?¨ C‘ €„s N‡?€E C‘ €‚G N‡?œ C‘ €ƒ N‡?” C‘ €‚u N‡?— C‘ €N N‡?ª C‘ € N‡?€D C‘ €‚ N‡?œ C‘ €ƒl M‡?½ C‘ €‚] M‡?€ C‘ €‚ M‡?€F C‘ €‚ N‡?€s C‘ €†R
#ifdef HAVE_CONFIG_H
#include <fc_config.h>
#endif

#include <stdarg.h>/* utility */
#include "fcintl.h"
#include "log.h"
#include "mem.h"
#include "support.h"

/* client */
#include "options.h"

/* client/gui-gtk-3.0 */
#include "colors.h"
#include "gui_main.h"

#include "gui_stuff.h"


static GList *dialog_list;

static GtkSizeGroup *gui_action;
  Draw widget now  Set widget postion relative to reference widget, y, width, height;

  gtk_window_get_position(GTK_WINDOW(ref), &x, &y);
  gtk_window_get_size(GTK_WINDOW(ref), &width, &height);

  x += px*width/100;
  y += py*height/100;

  gtk_window_move(GTK_WINDOW(w), x, y);
}  Create new stock button
*******/
GtkWidget *gtk_stockbutton_new(const gchar *stock, const gchar *label_text)
{
  GtkWidget *button;
  GtkWidget *image;
  
  button = gtk_button_new_with_mnemonic(label_text);
  image = gtk_image_new_from_stock(stock, GTK_ICON_SIZE_BUTTON);
  gtk_button_set_image(GTK_BUTTON(button), image);

  return button;
}  Changes the label (with mnemonic) on an existing stockbutton.  See
  gtk_stockbutton_new.
*******/
void gtk_stockbutton_set_label(GtkWidget *button, const gchar *label_text)
{
  gtk_button_set_label(GTK_BUTTON(button), label_text);
}  Returns gettext-converted list of n strings.  The individual strings
  in the list are as returned by gettext().  In case of no NLS, the strings
  will bevoid intl_slist(int n, const char **s, bool *done)
{
  int i;

  if (!*done) {
    for(i=0; i<n; i++) {
      s[i] = Q_(s[i]);
    }

    *done = TRUE;
  }
}
  Set itree to the beginning
/
void itree_begin(GtkTreeModel *model, ITree *it)
{
  it->model = model;
  it->end = !gtk_tree_model_get_iter_first(it->model, &it->it);
}
  Return whether itree end has been reached
/
gboolean itree_end(ITree *it)
{
  return it->end;
}
  Make itree to go forward one step
/
void itree_next(ITree *it)
{
  it->end = !gtk_tree_model_iter_next(it->model, &it->it);
}
  Store values to itree
/
void itree_set(ITree *it, ...)
{
  va_list ap;

  va_start(ap, it);
  gtk_tree_store_set_valist(GTK_TREE_STORE(it->model), &it->it, ap);
  va_end(ap);
}
  Get values from itree
/
void itree_get(ITree *it, ...)
{
  va_list ap;

  va_start(ap, it);
  gtk_tree_model_get_valist(it->model, &it->it, ap);
  va_end(ap);
}
  Append one item to the end of tree store
/
void tstore_append(GtkTreeStore *store, ITree *it, ITree *parent)
{
  it->model = GTK_TREE_MODEL(store);
  if (parent)
    gtk_tree_store_append(GTK_TREE_STORE(it->model), &it->it, &parent->it);
  else
    gtk_tree_store_append(GTK_TREE_STORE(it->model), &it->it, NULL);
  it->end = FALSE;
}
  Return whether current itree item is selected 
/
gboolean itree_is_selected(GtkTreeSelection *selection, ITree *it)
{
  return gtk_tree_selection_iter_is_selected(selection, &it->it);
}
  Add current itree item to selection
/
void itree_select(GtkTreeSelection *selection, ITree *it)
{
  gtk_tree_selection_select_iter(selection, &it->it);
}
  Remove current itree item from selection
/
void itree_unselect(GtkTreeSelection *selection, ITree *it)
{
  gtk_tree_selection_unselect_iter(selection, &it->it);
}  Return the selected row in a GtkTreeSelection.
  If no row is selected return -1.
*******/
gint gtk_tree_selection_get_row(GtkTreeSelection *selection)
{
  GtkTreeModel *model;
  GtkTreeIter it;
  gint row = -1;

  if (gtk_tree_selection_get_selected(selection, &model, &it)) {
    GtkTreePath *path;
    gint *idx;

    path = gtk_tree_model_get_path(model, &it);
    idx = gtk_tree_path_get_indices(path);
    row = idx[0];
    gtk_tree_path_free(path);
  }
  return row;
}  Give focus to view
*******/
void gtk_tree_view_focus(GtkTreeView *view)
{
  GtkTreeModel *model;
  GtkTreePath *path;
  GtkTreeIter iter;

  if ((model = gtk_tree_view_get_model(view))
      && gtk_tree_model_get_iter_first(model, &iter)
      && (path = gtk_tree_model_get_path(model, &iter))) {
    gtk_tree_view_set_cursor(view, path, NULL, FALSE);
    gtk_tree_path_free(path);
    gtk_widget_grab_focus(GTK_WIDGET(view));
  }
}  Create an auxiliary menubar (i.e., not the main menubar at the top of
  the window).
*******/
GtkWidget *gtk_aux_menu_bar_new(void) {
  GtkWidget *menubar = gtk_menu_bar_new();

  /*
   * Ubuntu Linux's Ayatana/Unity desktop environment likes to steal the
   * application's main menu bar from its window and put it at the top of
   * the screen. It needs a hint in order not to steal menu bars other
   * than the main one. Gory details at
   * https://bugs.launchpad.net/ubuntu/+source/freeciv/+bug/743265
   */
  if (g_object_class_find_property(
        G_OBJECT_CLASS(GTK_MENU_BAR_GET_CLASS(menubar)), "ubuntu-local")) {
    g_object_set(G_OBJECT(menubar), "ubuntu-local", TRUE, NULL);
  }

  return menubar;
}  Generic close callback for all widgets
*******/
static void close_callback(GtkDialog *dialog, gpointer data)
{
  gtk_widget_destroy(GTK_WIDGET(dialog));
}
  This function handles new windows which are subwindows to the
  toplevel window. It must be called on every dialog in the game,
  so fullscreen windows are handled properly by the window manager.
****/
void setup_dialog(GtkWidget *shell, GtkWidget *parent)
{
  if (gui_gtk3_dialogs_on_top || fullscreen_mode) {
    gtk_window_set_transient_for(GTK_WINDOW(shell),
                                 GTK_WINDOW(parent));
    gtk_window_set_type_hint(GTK_WINDOW(shell),
                             GDK_WINDOW_TYPE_HINT_DIALOG);
  } else {
    gtk_window_set_type_hint(GTK_WINDOW(shell),
                             GDK_WINDOW_TYPE_HINT_NORMAL);
  }

  /* Close dialog window on Escape keypress. */
  if (GTK_IS_DIALOG(shell)) {
    g_signal_connect_after(shell, "close", G_CALLBACK(close_callback), shell);
  }
}
  Emit a dialog response.
*******/
static void gui_dialog_response(struct gui_dialog *dlg, int response)
{
  if (dlg->response_callback) {
    (*dlg->response_callback)(dlg, response, dlg->user_data);
  }
}  Default dialog response handler. Destroys the dialog.
*******/
static void gui_dialog_destroyed(struct gui_dialog *dlg, int response,
                                 gpointer data)
{
  gui_dialog_destroy(dlg);
}  Cleanups the leftovers after a dialog is destroyed.
*******/
static void gui_dialog_destroy_handler(GtkWidget *w, struct gui_dialog *dlg)
{
  if (dlg->type == GUI_DIALOG_TAB) {
    GtkWidget *notebook = dlg->v.tab.notebook;
    gulong handler_id = dlg->v.tab.handler_id;

    g_signal_handler_disconnect(notebook, handler_id);
  }

  g_object_unref(dlg->gui_button);

  if (*(dlg->source)) {
    *(dlg->source) = NULL;
  }

  dialog_list = g_list_remove(dialog_list, dlg);
  
  /* Raise the return dialog set by gui_dialog_set_return_dialog() */
  if (dlg->return_dialog_id != -1) {
    GList *it;
    for (it = dialog_list; it; it = g_list_next(it)) {
      struct gui_dialog * adialog = (struct gui_dialog *)it->data;
      if (adialog->id == dlg->return_dialog_id) {
        gui_dialog_raise(adialog);
	break;
      }
    }
  }
  
  if (dlg->title) {
    free(dlg->title);
  }
  
  free(dlg);
}  Emit a delete event response on dialog deletion in case the end-user
  needs to know when a deletion took place.
  Popup dialog version
*******/
static gint gui_dialog_delete_handler(GtkWidget *widget,
				      GdkEventAny *ev, gpointer data)
{
  struct gui_dialog *dlg = data;

  /* emit response signal. */
  gui_dialog_response(dlg, GTK_RESPONSE_DELETE_EVENT);
                                                                               
  /* do the destroy by default. */
  return FALSE;
}  Emit a delete event response on dialog deletion in case the end-user
  needs to know when a deletion took place.
  TAB version
*******/
static gint gui_dialog_delete_tab_handler(struct gui_dialog* dlg)
{
  GtkWidget* notebook;
  int n;
  
  notebook = dlg->v.tab.notebook;
  n = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
  if (gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), n)
      != dlg->v.tab.child) {
    gui_dialog_set_return_dialog(dlg, NULL);
  }			                                  
  
  /* emit response signal. */
  gui_dialog_response(dlg, GTK_RESPONSE_DELETE_EVENT);
                                                                               
  /* do the destroy by default. */
  return FALSE  Allow the user to close a dialog using Escape or CTRL+W.
*******/
static gboolean gui_dialog_key_press_handler(GtkWidget *w, GdkEventKey *ev,
					     gpointer data)
{
  struct gui_dialog *dlg = data;

  if (ev->keyval == GDK_KEY_Escape
	|| ((ev->state & GDK_CONTROL_MASK) && ev->keyval == GDK_KEY_w)) {
    /* emit response signal. */
    gui_dialog_response(dlg, GTK_RESPONSE_DELETE_EVENT);
  }

  /* propagate event further. */
  return FALSE;
}  Resets tab colour on tab activation.
*******/
static void gui_dialog_switch_page_handler(GtkNotebook *notebook,
					   GtkWidget *page,
					   guint num,
					   struct gui_dialog *dlg)
{
  gint n;

  n = gtk_notebook_page_num(GTK_NOTEBOOK(dlg->v.tab.notebook), dlg->vbox);

  if (n == num) {
    gtk_widget_override_color(dlg->v.tab.label, GTK_STATE_FLAG_NORMAL, NULL);
  }
}  Changes a tab into a window.
*******/
static void gui_dialog_detach(struct gui_dialog* dlg)
{
  gint n;
  GtkWidget *window, *notebook;
  gulong handler_id;

  if (dlg->type != GUI_DIALOG_TAB) {
    return;
  }
  dlg->type = GUI_DIALOG_WINDOW;
  
  /* Create a new reference to the main widget, so it won't be 
   * destroyed in gtk_notebook_remove_page() */
  g_object_ref(dlg->vbox);

  /* Remove widget from the notebook */
  notebook = dlg->v.tab.notebook;
  handler_id = dlg->v.tab.handler_id;
  g_signal_handler_disconnect(notebook, handler_id);

  n = gtk_notebook_page_num(GTK_NOTEBOOK(dlg->v.tab.notebook), dlg->vbox);
  gtk_notebook_remove_page(GTK_NOTEBOOK(dlg->v.tab.notebook), n);


  /* Create window and put the widget inside */
  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title(GTK_WINDOW(window), dlg->title);
  setup_dialog(window, toplevel);

  gtk_container_add(GTK_CONTAINER(window), dlg->vbox);
  dlg->v.window = window;
  g_signal_connect(window, "delete_event",
    G_CALLBACK(gui_dialog_delete_handler), dlg);
	
  gtk_window_set_default_size(GTK_WINDOW(dlg->v.window),
                              dlg->default_width,
			      dlg->default_height);    
  gtk_widget_show_all(window);
}*
  Someone has clicked on a label in a notebook
********/
static gboolean click_on_tab_callback(GtkWidget* w,
                                     GdkEventButton* button,
				     gpointer data)
{
  if (button->type != GDK_2BUTTON_PRESS) {
    return FALSE;
  }
  if (button->button != 1) {
    return FALSE;
  }
  gui_dialog_detach((struct gui_dialog*) data);
  return TRUE  Creates a new dialog. It will be a tab or a window depending on the
  current user setting of 'gui_gtk3_enable_tabs'.
  Sets pdlg to point to the dialog once it is create, Zeroes pdlg on
  dialog destruction.
  user_data will be passed through response function
  check_top indicates if the layout deision should depend on the parent.
*******/
void gui_dialog_new(struct gui_dialog **pdlg, GtkNotebook *notebook,
                    gpointer user_data, bool check_top)
{
  struct gui_dialog *dlg;
  GtkWidget *vbox, *action_area;
  static int dialog_id_counter;

  dlg = fc_malloc(sizeof(*dlg));
  dialog_list = g_list_prepend(dialog_list, dlg);

  dlg->source = pdlg;
  *pdlg = dlg;
  dlg->user_data = user_data;
  dlg->title = NULL;
  
  dlg->default_width = 200;
  dlg->default_height = 300;

  if (gui_gtk3_enable_tabs) {
    dlg->type = GUI_DIALOG_TAB;
  } else {
    dlg->type = GUI_DIALOG_WINDOW;
  }

  if (!gui_action) {
    gui_action = gtk_size_group_new(GTK_SIZE_GROUP_VERTICAL);
  }
  dlg->gui_button = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);

  vbox = gtk_grid_new();
  action_area = gtk_grid_new();
  gtk_grid_set_row_spacing(GTK_GRID(action_area), 4);
  gtk_grid_set_column_spacing(GTK_GRID(action_area), 4);
  if (gui_gtk3_enable_tabs &&
      (check_top && notebook != GTK_NOTEBOOK(top_notebook))
      && !gui_gtk3_small_display_layout) {
    /* We expect this to be short (as opposed to tall); maximise usable
     * height by putting buttons down the right hand side */
    gtk_orientable_set_orientation(GTK_ORIENTABLE(action_area),
                                   GTK_ORIENTATION_VERTICAL);
  } else {
    /* We expect this to be reasonably tall; maximise usable width by
     * putting buttons along the bottom */
    gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox),
                                   GTK_ORIENTATION_VERTICAL);
  }

  gtk_widget_show(vbox);
  gtk_container_add(GTK_CONTAINER(vbox), action_area);
  gtk_widget_show(action_area);

  gtk_container_set_border_width(GTK_CONTAINER(vbox), 2);
  gtk_container_set_border_width(GTK_CONTAINER(action_area), 2);

  switch (dlg->type) {
  case GUI_DIALOG_WINDOW:
    {
      GtkWidget *window;

      window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
      gtk_widget_set_name(window, "Freeciv");
      gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_MOUSE);
      setup_dialog(window, toplevel);

      gtk_container_add(GTK_CONTAINER(window), vbox);
      dlg->v.window = window;
      g_signal_connect(window, "delete_event",
        G_CALLBACK(gui_dialog_delete_handler), dlg);
      
    }
    break;
  case GUI_DIALOG_TAB:
    {
      GtkWidget *hbox, *label, *image, *button, *event_box;
      gint w, h;
      gchar *buf;

      gtk_icon_size_lookup_for_settings(
        gtk_settings_get_for_screen(gtk_widget_get_screen(vbox)),
        GTK_ICON_SIZE_MENU, &w, &h);

      hbox = gtk_grid_new();

      label = gtk_label_new(NULL);
      gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
      gtk_misc_set_padding(GTK_MISC(label), 4, 0);
      gtk_container_add(GTK_CONTAINER(hbox), label);

      button = gtk_button_new();
      gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
      g_signal_connect_swapped(button, "clicked",
	  G_CALLBACK(gui_dialog_delete_tab_handler), dlg);

      buf = g_strdup_printf(_("Close Tab:\n%s"), _("Ctrl+W"));
      gtk_widget_set_tooltip_text(button, buf);
      g_free(buf);

      image = gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU);
      gtk_misc_set_padding(GTK_MISC(image), 0, 0);
      gtk_button_set_image(GTK_BUTTON(button), image);

      gtk_container_add(GTK_CONTAINER(hbox), button);

      gtk_widget_show_all(hbox);

      event_box = gtk_event_box_new();
      gtk_event_box_set_visible_window(GTK_EVENT_BOX(event_box), FALSE);
      gtk_container_add(GTK_CONTAINER(event_box), hbox);

      gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, event_box);
      dlg->v.tab.handler_id =
	g_signal_connect(notebook, "switch-page",
	    G_CALLBACK(gui_dialog_switch_page_handler), dlg);
      dlg->v.tab.child = vbox;

      dlg->v.tab.label = label;
      dlg->v.tab.notebook = GTK_WIDGET(notebook);
      
      gtk_widget_add_events(event_box, GDK_BUTTON2_MOTION_MASK);
      g_signal_connect(event_box, "button-press-event",
                       G_CALLBACK(click_on_tab_callback), dlg);
    }
    break;
  }

  dlg->vbox = vbox;
  dlg->action_area = action_area;

  dlg->response_callback = gui_dialog_destroyed;
  
  dlg->id = dialog_id_counter;
  dialog_id_counter++;
  dlg->return_dialog_id = -1;

  g_signal_connect(vbox, "destroy",
      G_CALLBACK(gui_dialog_destroy_handler), dlg);
  g_signal_connect(vbox, "key_press_event",
      G_CALLBACK(gui_dialog_key_press_handler), dlg);

  g_object_set_data(G_OBJECT(vbox), "gui-dialog-data", dlg);
}  Called when a dialog button is activated.
*******/
static void action_widget_activated(GtkWidget *button, GtkWidget *vbox)
{
  struct gui_dialog *dlg =
    g_object_get_data(G_OBJECT(vbox), "gui-dialog-data");
  gpointer arg2 =
    g_object_get_data(G_OBJECT(button), "gui-dialog-response-data");

  gui_dialog_response(dlg, GPOINTER_TO_INT(arg2));
}  Places a button into a dialog, taking care of setting up signals, etc.
*******/
static void gui_dialog_pack_button(struct gui_dialog *dlg, GtkWidget *button,
				   int response)
{
  gint signal_id;

  fc_assert_ret(GTK_IS_BUTTON(button));

  g_object_set_data(G_OBJECT(button), "gui-dialog-response-data",
      GINT_TO_POINTER(response));

  if ((signal_id = g_signal_lookup("clicked", GTK_TYPE_BUTTON))) {
    GClosure *closure;

    closure = g_cclosure_new_object(G_CALLBACK(action_widget_activated),
	G_OBJECT(dlg->vbox));
    g_signal_connect_closure_by_id(button, signal_id, 0, closure, FALSE);
  }

  gtk_container_add(GTK_CONTAINER(dlg->action_area), button);
  gtk_size_group_add_widget(gui_action, button);
  gtk_size_group_add_widget(dlg->gui_button, button);
}  Adds a button to a dialog, allowing the choice of a special stock item.
*******/
GtkWidget *gui_dialog_add_stockbutton(struct gui_dialog *dlg,
				      const char *stock,
				      const char *text, int response)
{
  GtkWidget *button;

  button = gtk_stockbutton_new(stock, text);
  gtk_widget_set_can_default(button, TRUE);
  gui_dialog_pack_button(dlg, button, response);

  return button;
}  Adds a button to a dialog.
*******/
GtkWidget *gui_dialog_add_button(struct gui_dialog *dlg,
				 const char *text, int response)
{
  GtkWidget *button;

  button = gtk_button_new_from_stock(text);
  gtk_widget_set_can_default(button, TRUE);
  gui_dialog_pack_button(dlg, button, response);

  return button;
}  Adds a widget to a dialog.
*******/
GtkWidget *gui_dialog_add_widget(struct gui_dialog *dlg,
				 GtkWidget *widget)
{
  gtk_container_add(GTK_CONTAINER(dlg->action_area), widget);
  gtk_size_group_add_widget(gui_action, widget);

  return widget;
}  Changes the default dialog response.
*******/
void gui_dialog_set_default_response(struct gui_dialog *dlg, int response)
{
  GList *children;
  GList *list;

  children = gtk_container_get_children(GTK_CONTAINER(dlg->action_area));

  for (list = children; list; list = g_list_next(list)) {
    GtkWidget *button = list->data;

    if (GTK_IS_BUTTON(button)) {
      gpointer data = g_object_get_data(G_OBJECT(button),
	  "gui-dialog-response-data");

      if (response == GPOINTER_TO_INT(data)) {
	gtk_widget_grab_default(button);
      }
    }
  }

  g_list_free(children);
}  Change the sensitivity of a dialog button.
*******/
void gui_dialog_set_response_sensitive(struct gui_dialog *dlg,
				       int response, bool setting)
{
  GList *children;
  GList *list;

  children = gtk_container_get_children(GTK_CONTAINER(dlg->action_area));

  for (list = children; list; list = g_list_next(list)) {
    GtkWidget *button = list->data;

    if (GTK_IS_BUTTON(button)) {
      gpointer data = g_object_get_data(G_OBJECT(button),
	  "gui-dialog-response-data");

      if (response == GPOINTER_TO_INT(data)) {
	gtk_widget_set_sensitive(button, setting);
      }
    }
  }

  g_list_free(children);
}  Get the dialog's toplevel window.
*******/
GtkWidget *gui_dialog_get_toplevel(struct gui_dialog *dlg)
{
  return gtk_widget_get_toplevel(dlg->vbox);
}  Show the dialog contents, but not the dialog per se.
*******/
void gui_dialog_show_all(struct gui_dialog *dlg)
{
  gtk_widget_show_all(dlg->vbox);

  if (dlg->type == GUI_DIALOG_TAB) {
    GList *children;
    GList *list;
    gint num_visible = 0;

    children = gtk_container_get_children(GTK_CONTAINER(dlg->action_area));

    for (list = children; list; list = g_list_next(list)) {
      GtkWidget *button = list->data;

      if (!GTK_IS_BUTTON(button)) {
	num_visible++;
      } else {
	gpointer data = g_object_get_data(G_OBJECT(button),
	    "gui-dialog-response-data");
	int response = GPOINTER_TO_INT(data);

	if (response != GTK_RESPONSE_CLOSE
	    && response != GTK_RESPONSE_CANCEL) {
	  num_visible++;
	} else {
	  gtk_widget_hide(button);
	}
      }
    }
    g_list_free(children);

    if (num_visible == 0) {
      gtk_widget_hide(dlg->action_area);
    }
  }
}  Notify the user the dialog has changed.
*******/
void gui_dialog_present(struct gui_dialog *dlg)
{
  fc_assert_ret(NULL != dlg);

  switch (dlg->type) {
  case GUI_DIALOG_WINDOW:
    gtk_widget_show(dlg->v.window);
    break;
  case GUI_DIALOG_TAB:
    {
      GtkNotebook *notebook = GTK_NOTEBOOK(dlg->v.tab.notebook);
      gint current, n;

      current = gtk_notebook_get_current_page(notebook);
      n = gtk_notebook_page_num(notebook, dlg->vbox);

      if (current != n) {
	GtkWidget *label = dlg->v.tab.label;
	GdkRGBA color = {.red = 1.0, .green = 0, .blue = 0, .alpha = 1.0};

	gtk_widget_override_color(label, GTK_STATE_FLAG_NORMAL, &color);
      }
    }
    break;
  }
}  Raise dialog to top.
*******/
void gui_dialog_raise(struct gui_dialog *dlg)
{
  fc_assert_ret(NULL != dlg);

  switch (dlg->type) {
  case GUI_DIALOG_WINDOW:
    gtk_window_present(GTK_WINDOW(dlg->v.window));
    break;
  case GUI_DIALOG_TAB:
    {
      GtkNotebook *notebook = GTK_NOTEBOOK(dlg->v.tab.notebook);
      gint n;

      n = gtk_notebook_page_num(notebook, dlg->vbox);
      gtk_notebook_set_current_page(notebook, n);
    }
    break;
  }
}  Alert the user to an important event.
*******/
void gui_dialog_alert(struct gui_dialog *dlg)
{
  fc_assert_ret(NULL != dlg);

  switch (dlg->type) {
  case GUI_DIALOG_WINDOW:
    break;
  case GUI_DIALOG_TAB:
    {
      GtkNotebook *notebook = GTK_NOTEBOOK(dlg->v.tab.notebook);
      gint current, n;

      current = gtk_notebook_get_current_page(notebook);
      n = gtk_notebook_page_num(notebook, dlg->vbox);

      if (current != n) {
        GtkWidget *label = dlg->v.tab.label;
        GdkRGBA color = {.red = 0, .green = 0, .blue =1.0, .alpha = 1.0};

        gtk_widget_override_color(label, GTK_STATE_FLAG_NORMAL, &color);
      }
    }
    break;
  }
}  Sets the dialog's default size (applies to toplevel windows only).
*******/
void gui_dialog_set_default_size(struct gui_dialog *dlg, int width, int height)
{
  dlg->default_width = width;
  dlg->default_height = height;
  switch (dlg->type) {
  case GUI_DIALOG_WINDOW:
    gtk_window_set_default_size(GTK_WINDOW(dlg->v.window), width, height);
    break;
  case GUI_DIALOG_TAB:
    break;
  }
}  Changes a dialog's title.
*******/
void gui_dialog_set_title(struct gui_dialog *dlg, const char *title)
{
  if (dlg->title) {
    free(dlg->title);
  }
  dlg->title = fc_strdup(title);
  switch (dlg->type) {
  case GUI_DIALOG_WINDOW:
    gtk_window_set_title(GTK_WINDOW(dlg->v.window), title);
    break;
  case GUI_DIALOG_TAB:
    gtk_label_set_text_with_mnemonic(GTK_LABEL(dlg->v.tab.label), title);
    break;
  }
}  Destroy a dialog.
*******/
void gui_dialog_destroy(struct gui_dialog *dlg)
{
  switch (dlg->type) {
  case GUI_DIALOG_WINDOW:
    gtk_widget_destroy(dlg->v.window);
    break;
  case GUI_DIALOG_TAB:
    {
      gint n;

      n = gtk_notebook_page_num(GTK_NOTEBOOK(dlg->v.tab.notebook), dlg->vbox);
      gtk_notebook_remove_page(GTK_NOTEBOOK(dlg->v.tab.notebook), n);
    }
    break;
  }
}  Destroy all dialogs.
*******/
void gui_dialog_destroy_all(void)
{
  GList *it, *it_next;

  for (it = dialog_list; it; it = it_next) {
    it_next = g_list_next(it);

    gui_dialog_destroy((struct gui_dialog *)it->data);
  }
}  Set the response callback for a dialog.
*******/
void gui_dialog_response_set_callback(struct gui_dialog *dlg,
    GUI_DIALOG_RESPONSE_FUN fun)
{
  dlg->response_callback = fun;
}  When the dlg dialog is destroyed the return_dialog will be raised
*******/
void gui_dialog_set_return_dialog(struct gui_dialog *dlg,
                                  struct gui_dialog *return_dialog)
{
  if (return_dialog == NULL) {
    dlg->return_dialog_id = -1;
  } else {
    dlg->return_dialog_id = return_dialog->id;
  }
}  Updates a gui font style.
*******/
void gui_update_font(const char *font_name, const char *font_value)
{
  char *str;
  GtkCssProvider *provider;

  str = g_strdup_printf("#Freeciv #%s { font: %s;}", font_name, font_value);

  provider = gtk_css_provider_new();
  gtk_css_provider_load_from_data(GTK_CSS_PROVIDER(provider),
    str, -1, NULL);
  gtk_style_context_add_provider_for_screen(
    gtk_widget_get_screen(toplevel), GTK_STYLE_PROVIDER(provider),
    GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
  g_free(str);
}**
  Update a font option which is not attached to a widget.
*********/
void gui_update_font_full(const char *font_name, const char *font_value,
                          PangoFontDescription **font_desc)
{
  PangoFontDescription *f_desc;

  gui_update_font(font_name, font_value);

  f_desc = pango_font_description_from_string(font_value);
  pango_font_description_free(*font_desc);

  *font_desc = f_desc;
}**
  Temporarily disable signal invocation of the given callback for the given
  GObject. Re-enable the signal with enable_gobject_callback.
*********/
void disable_gobject_callback(GObject *obj, GCallback cb)
{
  gulong hid;

  if (!obj || !cb) {
    return;
  }

  hid = g_signal_handler_find(obj, G_SIGNAL_MATCH_FUNC,
                              0, 0, NULL, cb, NULL);
  g_signal_handler_block(obj, hid);
}**
  Re-enable a signal callback blocked by disable_gobject_callback.
*********/
void enable_gobject_callback(GObject *obj, GCallback cb)
{
  gulong hid;

  if (!obj || !cb) {
    return;
  }

  hid = g_signal_handler_find(obj, G_SIGNAL_MATCH_FUNC,
                              0, 0, NULL, cb, NULL);
  g_signal_handler_unblock(obj, hid);
}  Convenience function to add a column to a GtkTreeView. Returns the added
  column, or NULL if an error occurred.
*******/
GtkTreeViewColumn *add_treeview_column(GtkWidget *view, const char *title,
                                       GType gtype, int model_index)
{
  GtkTreeViewColumn *col;
  GtkCellRenderer *rend;
  const char *attr;

  fc_assert_ret_val(view != NULL, NULL);
  fc_assert_ret_val(GTK_IS_TREE_VIEW(view), NULL);
  fc_assert_ret_val(title != NULL, NULL);

  if (gtype == G_TYPE_BOOLEAN) {
    rend = gtk_cell_renderer_toggle_new();
    attr = "active";
  } else if (gtype == GDK_TYPE_PIXBUF) {
    rend = gtk_cell_renderer_pixbuf_new();
    attr = "pixbuf";
  } else {
    rend = gtk_cell_renderer_text_new();
    attr = "text";
  }

  col = gtk_tree_view_column_new_with_attributes(title, rend, attr,
                                                 model_index, NULL);
  gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
  return col;
}
ENDREP
DELTA 29531 0 121
SVN  ¹5¹6	  ·  ‚·ENDREP
DELTA 19659 16211 142
SVN  ²L²M	  ®e  ƒh®dENDREP
DELTA 22687 0 239
SVN  »'»(	  ¹  ‚¹ENDREP
DELTA 30291 0 45
SVN  †  †    ‚þ  ƒ¡e‚þ†  ”J”K ”J 
ENDREP
DELTA 23455 0 7172
SVN  ·v·w	  ´  ƒq´ENDREP
DELTA 19659 22009 496
SVN  †?†A  è?  “Zè> Š(üENDREP
DELTA 31283 0 790
SVN  ‚úr‚ús
  Àn  ‚ºÀmENDREP
DELTA 22403 3129 497
SVN  ³R³S	  ˆz  ªYˆyENDREP
DELTA 31519 214 487
SVN  †  †    †–Z  ‰&†–Y†  •• • eENDREP
DELTA 19659 24186 410
SVN  Ù)Ù+  «P  ©}«O ƒ«O JØ_ENDREP
DELTA 29572 3976 113
SVN  †  †  *  ƒ¾^  ¢-ƒ¾] ™ ƒá	 ¥[ƒú ­t„Ÿb ²K„ÍU Ÿ[…€†  ››† › n,
   ENDREP
DELTA 22432 0 297
SVN  «%«&	  ù%  ²ù$ENDREP
DELTA 21403 34760 168
SVN  ‚—‚—  ‚~  ‡‚}ENDREP
id: gz.5kv.r31547/27756
type: file
pred: gz.5kv.r29360/358
count: 330
text: 31547 0 40 111972 37865f4857a5833aab9bffff6b9d742d
props: 11088 7720 112 0 89a05fc93c37a832d4b63085dac12c4b
cpath: /branches/S2_5/client/control.c
copyroot: 22812 /branches/S2_5

id: 10m.5kv.r31547/28011
type: file
pred: 10m.5ck.r21403/36693
count: 54
text: 31547 27703 24 35736 86a910f09c0ab106e6e5ddbfc7933137
props: 10967 1745 111 0 05a46e497021c8716b647ee1425e21a2
cpath: /branches/S2_5/client/gui-gtk-2.0/gui_stuff.c
copyroot: 22812 /branches/S2_5

PLAIN
K 11
Makefile.am
V 24
file zu.5kv.r25194/10613
K 8
canvas.c
V 25
file 2y6.5kv.r31098/17828
K 8
canvas.h
V 23
file 2y7.0.r10096/14437
K 16
caravan_dialog.c
V 23
file 376.5kv.r26309/304
K 10
chatline.c
V 22
file zw.5kv.r30194/433
K 10
chatline.h
V 24
file zx.5kv.r25819/24874
K 15
choice_dialog.c
V 24
file 377.5ck.r20037/8804
K 15
choice_dialog.h
V 23
file 378.0.r12670/99360
K 14
citizensinfo.c
V 23
file 6n1.5kv.r29074/647
K 14
citizensinfo.h
V 25
file 6n2.5kv.r26906/80725
K 9
citydlg.c
V 23
file zy.5kv.r30370/4347
K 9
citydlg.h
V 20
file zz.0.r5493/6351
K 9
cityrep.c
V 25
file 100.5ck.r22325/71392
K 9
cityrep.h
V 25
file 101.5ck.r18101/91562
K 8
cma_fe.c
V 24
file 102.5kv.r28022/5076
K 8
cma_fe.h
V 25
file 103.5ck.r19385/17470
K 8
colors.c
V 25
file 104.5kv.r31098/18101
K 8
colors.h
V 24
file 105.5ck.r16180/3087
K 12
connectdlg.c
V 25
file 106.5ck.r19683/48662
K 12
connectdlg.h
V 25
file 107.5ck.r19154/49180
K 9
dialogs.c
V 23
file 108.5kv.r30531/167
K 9
dialogs.h
V 25
file 109.5kv.r23887/49261
K 10
diplodlg.c
V 25
file 10a.5kv.r28652/20948
K 10
diplodlg.h
V 23
file 10b.0.r9577/108261
K 17
diplomat_dialog.c
V 25
file 36n.5kv.r26318/16788
K 9
editgui.c
V 22
file 4ej.5kv.r30470/55
K 9
editgui.h
V 25
file 4ek.5kv.r26906/80082
K 10
editprop.c
V 23
file 4el.5kv.r31082/484
K 10
editprop.h
V 25
file 3bj.5cl.r21141/52087
K 10
embedggz.c
V 23
file 4gq.5kv.r30125/388
K 9
finddlg.c
V 25
file 10c.5ck.r20622/23806
K 9
finddlg.h
V 22
file 2d0.0.r5989/22356
K 10
gamedlgs.c
V 25
file 10d.5ck.r21403/38654
K 9
gotodlg.c
V 23
file 10e.5kv.r30668/944
K 9
gotodlg.h
V 25
file 10f.5ck.r19505/20989
K 10
graphics.c
V 23
file 10g.5ck.r22525/653
K 10
graphics.h
V 23
file 10h.5ck.r22525/906
K 12
gtkpixcomm.c
V 25
file 10i.5ck.r19683/48923
K 12
gtkpixcomm.h
V 24
file 10j.5ck.r19779/2644
K 10
gui_main.c
V 25
file 10k.5kv.r31055/16479
K 10
gui_main.h
V 24
file 10l.5kv.r29597/1520
K 11
gui_stuff.c
V 25
file 10m.5kv.r31547/28011
K 11
gui_stuff.h
V 25
file 10n.5ck.r20622/22320
K 11
happiness.c
V 25
file 10o.5ck.r22264/26496
K 11
happiness.h
V 23
file 10p.0.r9577/106064
K 9
helpdlg.c
V 23
file 10q.5kv.r29141/698
K 9
helpdlg.h
V 23
file 10r.0.r4313/267882
K 10
inputdlg.c
V 25
file 10s.5ck.r19683/46961
K 10
inputdlg.h
V 24
file 10t.5ck.r19651/6762
K 10
inteldlg.c
V 25
file 10u.5kv.r26230/78183
K 10
inteldlg.h
V 23
file 2d1.0.r9577/108626
K 12
luaconsole.c
V 25
file 75w.5kv.r26906/77517
K 12
luaconsole.h
V 25
file 75x.5kv.r26906/77835
K 9
mapctrl.c
V 24
file 10v.5ck.r20037/8551
K 9
mapctrl.h
V 25
file 10w.5bk.r14157/11089
K 9
mapview.c
V 24
file 10x.5kv.r30370/4616
K 9
mapview.h
V 24
file 10y.5ck.r17351/2736
K 6
menu.c
V 24
file 10z.5kv.r30376/2524
K 6
menu.h
V 25
file 110.5ck.r16067/65085
K 12
messagedlg.c
V 24
file 111.5ck.r20767/1172
K 12
messagedlg.h
V 22
file 2d2.0.r5989/22693
K 12
messagewin.c
V 24
file 112.5ck.r21446/1721
K 12
messagewin.h
V 25
file 113.5ck.r18082/27153
K 11
optiondlg.c
V 24
file 4js.5kv.r30376/2789
K 11
optiondlg.h
V 25
file 114.5ck.r17037/29773
K 7
pages.c
V 24
file 2pi.5kv.r27140/4870
K 7
pages.h
V 24
file 2pj.5kv.r24719/1381
K 8
plrdlg.c
V 24
file 115.5kv.r30424/1755
K 8
plrdlg.h
V 22
file 116.0.r10803/7069
K 10
ratesdlg.h
V 22
file 2d3.0.r5989/22018
K 4
rc2c
V 23
file 117.0.r4313/274431
K 10
repodlgs.c
V 24
file 118.5kv.r28244/6207
K 10
repodlgs.h
V 24
file 119.5ck.r18439/2365
K 11
resources.c
V 26
file 11a.5ck.r19259/423360
K 11
resources.h
V 23
file 11b.5ck.r22128/110
K 14
soundset_dlg.c
V 25
file kcq.5kv.r26906/77195
K 14
spaceshipdlg.c
V 25
file 11c.5ck.r20622/24322
K 14
spaceshipdlg.h
V 23
file 11d.0.r9577/110090
K 8
sprite.c
V 23
file 2y8.5kv.r24400/217
K 8
sprite.h
V 23
file 2y9.0.r10141/29270
K 11
theme_dlg.c
V 25
file 47d.5ck.r19767/51012
K 8
themes.c
V 23
file 34x.5ck.r20534/377
K 13
tileset_dlg.c
V 23
file 45i.5kv.r30227/498
K 12
unitselect.c
V 25
file 6pa.5kv.r27923/37734
K 12
unitselect.h
V 25
file 6pb.5kv.r26906/76875
K 14
voteinfo_bar.c
V 23
file 4h8.5kv.r30888/128
K 14
voteinfo_bar.h
V 25
file 4h9.5kv.r26906/78482
K 7
wldlg.c
V 23
file 11e.5kv.r30125/656
K 7
wldlg.h
V 25
file 11f.5ck.r16285/86707
END
ENDREP
id: zs.5kv.r31547/32380
type: dir
pred: zs.5kv.r31098/22464
count: 1689
text: 31547 28286 4081 0 71a6261cf1e1c52cfbca8bde77eb2122
props: 11108 11912 79 0 480bb3268560e84c2d6c8376c422c65e
cpath: /branches/S2_5/client/gui-gtk-2.0
copyroot: 22812 /branches/S2_5

id: 10m.5kx.r31547/32640
type: file
pred: 10m.5g7.r22082/16090
count: 64
text: 31547 65 26930 34962 fa7c80bdfdf6dd5d876da64ad23938b9
props: 10967 1745 111 0 05a46e497021c8716b647ee1425e21a2
cpath: /branches/S2_5/client/gui-gtk-3.0/gui_stuff.c
copyroot: 19694 /trunk/client/gui-gtk-3.0

PLAIN
K 11
Makefile.am
V 24
file zu.5kx.r25194/24605
K 8
canvas.c
V 25
file 2y6.5kx.r31098/22723
K 8
canvas.h
V 25
file 2y7.5g7.r20781/42180
K 16
caravan_dialog.c
V 24
file 376.5kx.r26309/4947
K 10
chatline.c
V 23
file zw.5kx.r30194/5325
K 10
chatline.h
V 24
file zx.5kx.r25819/30073
K 15
choice_dialog.c
V 23
file 377.5g7.r22029/922
K 15
choice_dialog.h
V 23
file 378.0.r12670/99360
K 14
citizensinfo.c
V 24
file 6n1.5kx.r29074/5287
K 14
citizensinfo.h
V 25
file 6n2.5kx.r26906/69800
K 9
citydlg.c
V 23
file zy.5kx.r30867/3108
K 9
citydlg.h
V 20
file zz.0.r5493/6351
K 9
cityrep.c
V 23
file 100.5kx.r23708/362
K 9
cityrep.h
V 25
file 101.5ck.r18101/91562
K 8
cma_fe.c
V 25
file 102.5kx.r28715/13507
K 8
cma_fe.h
V 25
file 103.5kx.r28715/13785
K 8
colors.c
V 25
file 104.5kx.r31098/23006
K 8
colors.h
V 25
file 105.5g7.r21920/14399
K 12
connectdlg.c
V 25
file 106.5ck.r19683/48662
K 12
connectdlg.h
V 25
file 107.5ck.r19154/49180
K 9
dialogs.c
V 24
file 108.5kx.r30531/4785
K 9
dialogs.h
V 25
file 109.5kx.r23887/54436
K 10
diplodlg.c
V 25
file 10a.5kx.r28652/34698
K 10
diplodlg.h
V 23
file 10b.0.r9577/108261
K 17
diplomat_dialog.c
V 25
file 36n.5kx.r26318/21439
K 9
editgui.c
V 23
file 4ej.5kx.r30191/772
K 9
editgui.h
V 25
file 4ek.5kx.r26906/69139
K 10
editprop.c
V 24
file 4el.5kx.r31082/5103
K 10
editprop.h
V 25
file 3bj.5jh.r21141/57145
K 10
embedggz.c
V 24
file 4gq.5kx.r30125/5277
K 9
finddlg.c
V 23
file 10c.5kx.r24964/157
K 9
finddlg.h
V 22
file 2d0.0.r5989/22356
K 10
gamedlgs.c
V 23
file 10d.5kx.r30606/108
K 9
gotodlg.c
V 24
file 10e.5kx.r30668/5564
K 9
gotodlg.h
V 25
file 10f.5ck.r19505/20989
K 10
graphics.c
V 24
file 10g.5g7.r22525/6030
K 10
graphics.h
V 24
file 10h.5g7.r22525/6304
K 12
gtkpixcomm.c
V 25
file 10i.5g7.r21620/11139
K 12
gtkpixcomm.h
V 24
file 10j.5g7.r21587/1498
K 10
gui_main.c
V 25
file 10k.5kx.r31055/21108
K 10
gui_main.h
V 24
file 10l.5kx.r29597/6722
K 11
gui_stuff.c
V 25
file 10m.5kx.r31547/32640
K 11
gui_stuff.h
V 24
file 10n.5g7.r22000/3088
K 11
happiness.c
V 23
file 10o.5kx.r25223/183
K 11
happiness.h
V 23
file 10p.0.r9577/106064
K 9
helpdlg.c
V 24
file 10q.5kx.r29141/5331
K 9
helpdlg.h
V 23
file 10r.0.r4313/267882
K 10
inputdlg.c
V 25
file 10s.5g7.r20464/72142
K 10
inputdlg.h
V 24
file 10t.5ck.r19651/6762
K 10
inteldlg.c
V 25
file 10u.5kx.r26230/69666
K 10
inteldlg.h
V 23
file 2d1.0.r9577/108626
K 12
luaconsole.c
V 22
file 76e.5kx.r31042/51
K 12
luaconsole.h
V 25
file 76f.5kx.r26906/66820
K 9
mapctrl.c
V 23
file 10v.5kx.r22943/708
K 9
mapctrl.h
V 23
file 10w.5g7.r21978/547
K 9
mapview.c
V 24
file 10x.5kx.r30370/9523
K 9
mapview.h
V 24
file 10y.5g7.r21620/8982
K 6
menu.c
V 24
file 10z.5kx.r30376/7417
K 6
menu.h
V 25
file 110.5ck.r16067/65085
K 12
messagedlg.c
V 25
file 111.5g7.r22082/18513
K 12
messagedlg.h
V 22
file 2d2.0.r5989/22693
K 12
messagewin.c
V 25
file 112.5g7.r22082/16367
K 12
messagewin.h
V 25
file 113.5ck.r18082/27153
K 11
optiondlg.c
V 24
file 4js.5kx.r30376/7695
K 11
optiondlg.h
V 25
file 114.5ck.r17037/29773
K 7
pages.c
V 24
file 2pi.5lu.r29824/5738
K 7
pages.h
V 24
file 2pj.5kx.r24719/6591
K 8
plrdlg.c
V 24
file 115.5kx.r30424/6382
K 8
plrdlg.h
V 22
file 116.0.r10803/7069
K 10
ratesdlg.h
V 22
file 2d3.0.r5989/22018
K 10
repodlgs.c
V 24
file 118.5kx.r28244/1420
K 10
repodlgs.h
V 24
file 119.5ck.r18439/2365
K 14
soundset_dlg.c
V 24
file cku.5kx.r30227/5124
K 14
spaceshipdlg.c
V 25
file 11c.5g7.r22082/18236
K 14
spaceshipdlg.h
V 23
file 11d.0.r9577/110090
K 8
sprite.c
V 24
file 2y8.5kx.r26098/7071
K 8
sprite.h
V 23
file 2y9.5kx.r30390/130
K 11
theme_dlg.c
V 25
file 47d.5g7.r20464/70472
K 8
themes.c
V 23
file 34x.5kx.r31140/654
K 13
tileset_dlg.c
V 24
file 45i.5kx.r30227/5406
K 12
unitselect.c
V 25
file 6pa.5kx.r27923/42384
K 12
unitselect.h
V 25
file 6pb.5kx.r26906/65829
K 14
voteinfo_bar.c
V 24
file 4h8.5kx.r30888/4749
K 14
voteinfo_bar.h
V 25
file 4h9.5kx.r26906/67484
K 7
wldlg.c
V 24
file 11e.5kx.r30867/3389
K 7
wldlg.h
V 25
file 11f.5ck.r16285/86707
END
ENDREP
id: zs.5kx.r31547/36891
type: dir
pred: zs.5kx.r31140/4894
count: 1822
text: 31547 32926 3952 0 7985d587c38a777e6492c504a11415cd
props: 11108 11912 79 0 480bb3268560e84c2d6c8376c422c65e
cpath: /branches/S2_5/client/gui-gtk-3.0
copyroot: 19694 /trunk/client/gui-gtk-3.0

PLAIN
K 11
Makefile.am
V 22
file 5f.5kv.r31438/117
K 6
agents
V 21
dir zf.5kv.r29332/744
K 11
attribute.c
V 24
file xh.5kv.r27498/50327
K 11
attribute.h
V 24
file xi.5ck.r18863/23649
K 7
audio.c
V 24
file 139.5ck.r22180/7668
K 7
audio.h
V 24
file 13a.5ck.r22180/7911
K 12
audio_none.c
V 26
file 13d.5ck.r19259/462511
K 12
audio_none.h
V 25
file 13e.5ck.r18863/20841
K 11
audio_sdl.c
V 25
file 13f.5kv.r31055/16217
K 11
audio_sdl.h
V 25
file 13g.5ck.r18863/23885
K 17
chatline_common.c
V 24
file 14q.5kv.r24896/5437
K 17
chatline_common.h
V 24
file 14r.5kv.r24893/5197
K 16
citydlg_common.c
V 22
file z4.5kv.r31099/606
K 16
citydlg_common.h
V 24
file z5.5ck.r18863/18619
K 13
cityrepdata.c
V 22
file mb.5kv.r24130/185
K 13
cityrepdata.h
V 24
file mc.5ck.r18863/19121
K 13
client_main.c
V 23
file 2f.5m3.r30376/1995
K 13
client_main.h
V 24
file hz.5p3.r29283/28771
K 8
climap.c
V 24
file 197.5ck.r20232/3008
K 8
climap.h
V 25
file 198.5ck.r18863/24126
K 9
climisc.c
V 24
file d5.5kv.r26655/41648
K 9
climisc.h
V 24
file i0.5kv.r26655/41906
K 8
clinet.c
V 24
file hc.5kv.r31003/53958
K 8
clinet.h
V 24
file i1.5ck.r18863/24866
K 15
colors_common.c
V 25
file 33a.5kv.r31098/17301
K 15
colors_common.h
V 25
file 33b.5kv.r31098/17561
K 19
connectdlg_common.c
V 24
file 2fw.5kv.r30113/1635
K 19
connectdlg_common.h
V 25
file 2fx.5ck.r19154/53802
K 9
control.c
V 24
file gz.5kv.r31547/27756
K 9
control.h
V 23
file i2.5kv.r26325/5744
K 7
dummy.c
V 26
file 4f9.5kv.r26906/128290
K 12
dummycxx.cpp
V 25
file 6kr.5kv.r26906/60002
K 8
editor.c
V 24
file 3bg.5kv.r30515/2923
K 8
editor.h
V 24
file 3bh.5kv.r26199/1251
K 11
ggzclient.c
V 26
file 394.5ck.r20126/104106
K 11
ggzclient.h
V 25
file 395.5ck.r18863/21083
K 17
global_worklist.c
V 26
file 4i6.5kv.r26906/111450
K 17
global_worklist.h
V 26
file 4i7.5kv.r26906/120138
K 6
goto.c
V 22
file vu.5kv.r26658/166
K 6
goto.h
V 24
file vv.5ck.r20865/49000
K 11
gui-gtk-2.0
V 23
dir zs.5kv.r31547/32380
K 11
gui-gtk-3.0
V 23
dir zs.5kx.r31547/36891
K 6
gui-qt
V 23
dir 6ie.5kv.r31468/3350
K 7
gui-sdl
V 24
dir 16t.5kv.r31098/36356
K 8
gui-stub
V 23
dir mh.5kv.r31098/39596
K 7
gui-xaw
V 23
dir 9o.5kv.r31098/43701
K 14
gui_cbsetter.c
V 25
file a3c.5kv.r26906/75933
K 14
gui_cbsetter.h
V 25
file a3d.5kv.r26906/85422
K 15
gui_interface.c
V 26
file 6jm.5ni.r26906/120454
K 15
gui_interface.h
V 26
file 6jn.5nj.r26906/120785
K 10
helpdata.c
V 22
file h1.5kv.r31134/417
K 10
helpdata.h
V 24
file i3.5kv.r25496/41390
K 7
include
V 23
dir b8.5kv.r31098/45875
K 19
luaconsole_common.c
V 25
file 75z.5kv.r26906/75620
K 19
luaconsole_common.h
V 25
file 760.5kv.r26906/76240
K 9
luascript
V 25
dir 761.5kv.r26906/110514
K 16
mapctrl_common.c
V 22
file 15m.5kv.r30624/66
K 16
mapctrl_common.h
V 25
file 15n.5ck.r19893/12504
K 16
mapview_common.c
V 24
file z2.5kv.r31098/46129
K 16
mapview_common.h
V 24
file z3.5ck.r20392/39510
K 19
messagewin_common.c
V 25
file 14s.5ck.r19354/71979
K 19
messagewin_common.h
V 25
file 14t.5ck.r18863/21579
K 9
options.c
V 23
file dc.5kv.r30869/4049
K 9
options.h
V 24
file i4.5kv.r30376/25649
K 17
overview_common.c
V 23
file 2yk.5kv.r29835/603
K 17
overview_common.h
V 23
file 2yl.5kv.r29835/868
K 10
packhand.c
V 21
file n.5kv.r31529/401
K 10
packhand.h
V 24
file i5.5ck.r18863/20596
K 15
plrdlg_common.c
V 24
file 14u.5kv.r28835/1378
K 15
plrdlg_common.h
V 25
file 14v.5ck.r18863/21328
K 17
repodlgs_common.c
V 25
file 11i.5ck.r22325/76263
K 17
repodlgs_common.h
V 25
file 11j.5ck.r19589/11861
K 9
reqtree.c
V 24
file 2ym.5kv.r28244/5947
K 9
reqtree.h
V 24
file 2yn.5ck.r19057/3837
K 9
servers.c
V 25
file 33x.5kv.r31003/59723
K 9
servers.h
V 25
file 33y.5ck.r20478/36372
K 6
text.c
V 24
file 2g3.5kv.r29376/4874
K 6
text.h
V 25
file 2g4.5ck.r22264/31375
K 15
themes_common.c
V 22
file 352.5kv.r26466/95
K 15
themes_common.h
V 25
file 353.5ck.r18863/22710
K 10
tilespec.c
V 22
file hl.5kv.r30643/307
K 10
tilespec.h
V 24
file i6.5kv.r30370/14567
K 19
unitselect_common.c
V 26
file 76v.5kv.r26906/110817
K 19
unitselect_common.h
V 26
file 76w.5kv.r26906/111132
K 14
update_queue.c
V 25
file 4jw.5kv.r26906/74380
K 14
update_queue.h
V 25
file 4jx.5kv.r26906/75002
K 10
voteinfo.c
V 25
file 4fe.5kv.r26906/74693
K 10
voteinfo.h
V 25
file 4ff.5kv.r26906/75313
END
ENDREP
id: d.5kv.r31547/41389
type: dir
pred: d.5kv.r31529/4880
count: 6278
text: 31547 37161 4215 0 45dc34266974c0dd01ef32f3f3ac8a9b
props: 23991 877 341 0 4a292777c297b001f37cdd3988879aee
cpath: /branches/S2_5/client
copyroot: 22812 /branches/S2_5

id: 6n9.5kv.r31547/41633
type: file
pred: 6n9.5kv.r30291/76
count: 19
text: 31547 27164 40 105035 f4610b5fb8c4d367bc8ea0f628933d74
props: 26906 172770 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /branches/S2_5/common/mapimg.c
copyroot: 22812 /branches/S2_5

id: 6ky.5pf.r31547/41892
type: file
pred: 6ky.5pf.r26906/169240
count: 11
text: 31547 27656 22 21926 3f0f9b3b66af96c2fc0794618f0a4fa3
props: 26906 169193 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /branches/S2_5/common/scriptcore/luascript.c
copyroot: 20274 /trunk/common/scriptcore/luascript.c

PLAIN
K 11
Makefile.am
V 24
file 75b.5kv.r24746/2118
K 17
api_common_intl.c
V 26
file 323.5ho.r20287/110511
K 17
api_common_intl.h
V 26
file 324.5hp.r20287/111645
K 22
api_common_utilities.c
V 25
file 32e.5hq.r21803/13140
K 22
api_common_utilities.h
V 24
file 32f.5hr.r20292/1613
K 18
api_game_effects.c
V 26
file 4jz.5pb.r26906/167472
K 18
api_game_effects.h
V 26
file 4k0.5pc.r26906/168521
K 15
api_game_find.c
V 25
file 321.5ov.r25897/14604
K 15
api_game_find.h
V 26
file 322.5hv.r20287/110812
K 18
api_game_methods.c
V 24
file 33d.5ms.r27064/2705
K 18
api_game_methods.h
V 24
file 33e.5mq.r27064/3011
K 19
api_game_specenum.c
V 26
file 6gu.5pd.r26906/167832
K 19
api_game_specenum.h
V 26
file 6gv.5pe.r26906/168880
K 17
api_signal_base.c
V 26
file 75e.5kv.r26906/167147
K 17
api_signal_base.h
V 26
file 75f.5kv.r26906/168193
K 11
luascript.c
V 25
file 6ky.5pf.r31547/41892
K 11
luascript.h
V 26
file 6kz.5pg.r26906/166155
K 16
luascript_func.c
V 26
file 75g.5kv.r26906/166499
K 16
luascript_func.h
V 26
file 75h.5kv.r26906/166819
K 18
luascript_signal.c
V 24
file 32a.5i2.r21840/6819
K 18
luascript_signal.h
V 26
file 32b.5i3.r20287/111110
K 17
luascript_types.h
V 25
file 327.5i4.r21036/12174
K 18
tolua_common_a.pkg
V 22
file 6l0.5lb.r23187/44
K 18
tolua_common_z.pkg
V 25
file 6l1.5i6.r21036/12766
K 14
tolua_game.pkg
V 24
file 320.5mr.r27064/3317
K 16
tolua_signal.pkg
V 23
file 75i.5ck.r20289/971
END
ENDREP
id: 75a.5kv.r31547/43607
type: dir
pred: 75a.5kv.r27064/5034
count: 39
text: 31547 42190 1404 0 f4a8691d07fc2a8286a0b793653b60e2
props: 20297 4258 210 0 96ce2862a898d58fd2b950172851a0fd
cpath: /branches/S2_5/common/scriptcore
copyroot: 22812 /branches/S2_5

PLAIN
K 11
Makefile.am
V 23
file 5h.5kv.r25190/4634
K 4
ai.c
V 23
file 4go.5kv.r29099/627
K 4
ai.h
V 22
file 4gp.5kv.r27003/63
K 6
aicore
V 23
dir 18t.5kv.r31014/3019
K 6
base.c
V 24
file 3jw.5kv.r24813/2285
K 6
base.h
V 24
file 3jx.5kv.r27696/2200
K 9
borders.c
V 26
file 4f0.5kv.r26906/171259
K 9
borders.h
V 26
file 4f1.5kv.r26906/172192
K 8
capstr.c
V 22
file dv.5kv.r24977/289
K 8
capstr.h
V 24
file dw.5ck.r18858/97074
K 10
citizens.c
V 26
file 6mx.5kv.r26906/178051
K 10
citizens.h
V 26
file 6my.5kv.r26906/178662
K 6
city.c
V 22
file q.5kv.r31099/5338
K 6
city.h
V 23
file 3q.5kv.r29375/6017
K 8
combat.c
V 23
file wp.5kv.r30699/9905
K 8
combat.h
V 23
file wq.5kv.r24574/4864
K 12
connection.c
V 24
file un.5kv.r31003/64449
K 12
connection.h
V 24
file uo.5ck.r22458/34945
K 8
dataio.c
V 22
file 15r.5kv.r31058/59
K 8
dataio.h
V 24
file 15s.5kv.r26835/7796
K 11
diptreaty.c
V 23
file 3r.5kv.r29572/6418
K 11
diptreaty.h
V 24
file 3s.5ck.r22430/33000
K 10
disaster.c
V 26
file b2m.5kv.r26906/173130
K 10
disaster.h
V 26
file b2o.5kv.r26906/173743
K 9
effects.c
V 24
file 2eo.5kv.r29572/6677
K 9
effects.h
V 24
file 2ep.5kv.r28103/9736
K 8
events.c
V 23
file 33h.5ck.r21798/853
K 8
events.h
V 24
file 3t.5ck.r22430/32762
K 12
fc_cmdhelp.c
V 26
file 76j.5kv.r26906/174050
K 12
fc_cmdhelp.h
V 26
file 76k.5kv.r26906/174359
K 14
fc_interface.c
V 25
file 4up.5kv.r29370/40477
K 14
fc_interface.h
V 25
file 4uq.5kv.r28565/12627
K 10
fc_types.h
V 24
file 2ll.5kv.r31014/3270
K 15
featured_text.c
V 26
file 4h3.5kv.r26906/171876
K 15
featured_text.h
V 26
file 4h4.5kv.r26906/172501
K 6
game.c
V 21
file 3u.5kv.r30791/68
K 6
game.h
V 22
file 3v.5kv.r29846/577
K 19
generate_packets.py
V 25
file 2f4.5kv.r27498/41211
K 12
government.c
V 24
file he.5kv.r27498/41478
K 12
government.h
V 24
file hf.5ck.r18858/98787
K 6
idex.c
V 25
file qo.5ck.r19259/406132
K 6
idex.h
V 24
file qp.5ck.r18858/92434
K 13
improvement.c
V 23
file vb.5kv.r28820/2398
K 13
improvement.h
V 25
file vc.5kv.r24792/101133
K 5
map.c
V 22
file r.5kv.r31014/3526
K 5
map.h
V 22
file 41.5kv.r30788/924
K 8
mapimg.c
V 25
file 6n9.5kv.r31547/41633
K 8
mapimg.h
V 26
file 6na.5kv.r26906/173437
K 10
movement.c
V 25
file 2xv.5kv.r30515/18445
K 10
movement.h
V 25
file 2xw.5kv.r30515/18706
K 18
name_translation.h
V 26
file 4k1.5kv.r26906/174664
K 8
nation.c
V 21
file il.5kv.r30334/76
K 8
nation.h
V 23
file im.5kv.r25349/1914
K 9
packets.c
V 24
file 43.5kv.r31003/64970
K 11
packets.def
V 25
file 2f5.5kv.r30653/21807
K 9
packets.h
V 23
file 44.5kv.r22884/2307
K 8
player.c
V 23
file 45.5kv.r30537/1715
K 8
player.h
V 23
file 46.5kv.r30537/1970
K 14
requirements.c
V 22
file 2wq.5kv.r29393/56
K 14
requirements.h
V 24
file 2wr.5kv.r27696/1936
K 10
research.c
V 26
file 4ro.5kv.r26906/175898
K 10
research.h
V 22
file 4rp.5kv.r26982/83
K 10
rgbcolor.c
V 25
file 6i6.5kv.r31098/50873
K 10
rgbcolor.h
V 25
file 6i7.5kv.r31098/51135
K 6
road.c
V 26
file 6pq.5kv.r26906/177745
K 6
road.h
V 24
file 6pr.5kv.r29572/7960
K 10
scriptcore
V 24
dir 75a.5kv.r31547/43607
K 11
spaceship.c
V 24
file 98.5kv.r24606/14851
K 11
spaceship.h
V 24
file 99.5kv.r24606/15110
K 12
specialist.c
V 24
file 33f.5kv.r29572/8218
K 12
specialist.h
V 24
file 33g.5kv.r29572/8477
K 6
team.c
V 23
file 33i.5kv.r25892/212
K 6
team.h
V 23
file 33j.5kv.r26184/314
K 6
tech.c
V 23
file t.5kv.r28737/46576
K 6
tech.h
V 22
file u.5kv.r27884/7568
K 9
terrain.c
V 23
file 2fp.5kv.r25241/409
K 9
terrain.h
V 23
file qs.5kv.r27884/7821
K 6
tile.c
V 25
file 2ys.5kv.r30515/18967
K 6
tile.h
V 25
file 2yt.5kv.r30515/19225
K 13
traderoutes.c
V 25
file bf8.5kv.r27129/12723
K 13
traderoutes.h
V 25
file bfa.5kv.r27129/12989
K 8
traits.h
V 26
file 7k3.5kv.r26906/177127
K 6
unit.c
V 20
file v.5kv.r29958/54
K 6
unit.h
V 23
file 48.5kv.r29214/2733
K 10
unitlist.c
V 25
file 39m.5ck.r21517/87214
K 10
unitlist.h
V 24
file 39n.5kv.r24114/1627
K 10
unittype.c
V 24
file v9.5kv.r30699/10161
K 10
unittype.h
V 24
file va.5kv.r30699/10421
K 9
version.c
V 23
file oe.5kv.r31516/2635
K 9
version.h
V 23
file e7.5kv.r26252/3386
K 8
vision.c
V 22
file 4dm.5kv.r27640/98
K 8
vision.h
V 24
file 4dn.5ck.r21811/9325
K 12
workertask.c
V 26
file llw.5kv.r26906/165846
K 12
workertask.h
V 26
file lly.5kv.r26906/171570
K 10
worklist.c
V 22
file o8.5kv.r28028/169
K 10
worklist.h
V 24
file o9.5ck.r18858/98299
END
ENDREP
id: p.5kv.r31547/48182
type: dir
pred: p.5kv.r31516/7199
count: 3689
text: 31547 43865 4304 0 080cafb4280ca2ba2d9698d88cba9887
props: 23740 0 112 0 b2bc91bf125d83375389d51f25ff2c2f
cpath: /branches/S2_5/common
copyroot: 22812 /branches/S2_5

id: 12q.5kv.r31547/48424
type: file
pred: 12q.5ck.r19659/29849
count: 2
text: 31547 27274 27 17217 298e306c0d45802b9dc66bf7d6e9562e
props: 4430 53742 110 0 94a2a96823d3c54fff31bdd51de17982
cpath: /branches/S2_5/m4/ac_path_lib.m4
copyroot: 22812 /branches/S2_5

id: 12w.5kv.r31547/48685
type: file
pred: 12w.5kv.r29531/150
count: 6
text: 31547 27025 20 7350 13ebf1cc2a49846e7c3a68daabec90f3
props: 8328 2666 110 0 fd27c383f48a4fbbd90a59fbcfc8b3be
cpath: /branches/S2_5/m4/gtk-2.0.m4
copyroot: 22812 /branches/S2_5

id: 6zi.5kv.r31547/48938
type: file
pred: 6zi.5ck.r22687/265
count: 2
text: 31547 27119 20 7592 5ba60c2c9f7766c134bd64e282c18a84
cpath: /branches/S2_5/m4/gtk-3.0.m4
copyroot: 22812 /branches/S2_5

id: 12z.5kv.r31547/49135
type: file
pred: 12z.5ck.r19659/27768
count: 3
text: 31547 27495 29 11435 a37d7d2159ec4bb055117ec32cda90f0
props: 8328 1979 110 0 2a94ed7a58fe1feebaea27ee0c48460d
cpath: /branches/S2_5/m4/imlib.m4
copyroot: 22812 /branches/S2_5

id: 13j.5kv.r31547/49389
type: file
pred: 13j.5ck.r19659/26643
count: 4
text: 31547 27070 20 6477 2324c1116284f24dd0da516033568141
props: 8328 1640 110 0 2a94ed7a58fe1feebaea27ee0c48460d
cpath: /branches/S2_5/m4/sdl.m4
copyroot: 22812 /branches/S2_5

id: sxo.5kv.r31547/49640
type: file
pred: sxo.5kv.r23455/8888
count: 1
text: 31547 27228 20 7159 81c8b77da3c19d462e7a2f1d21a808f0
cpath: /branches/S2_5/m4/sdl2.m4
copyroot: 22812 /branches/S2_5

PLAIN
K 14
ac_path_lib.m4
V 25
file 12q.5kv.r31547/48424
K 8
c++11.m4
V 24
file 1gtv.5kv.r28664/282
K 6
c99.m4
V 23
file 2ez.5kv.r28884/698
K 10
codeset.m4
V 25
file 4es.5ck.r21754/19200
K 11
compiler.m4
V 23
file 4dr.5kv.r30725/200
K 8
debug.m4
V 23
file 158.5kv.r30516/119
K 13
fcdb-mysql.m4
V 25
file 6kl.5kv.r25194/38886
K 16
fcdb-postgres.m4
V 23
file 6km.5kv.r29037/112
K 15
fcdb-sqlite3.m4
V 25
file 6kn.5kv.r25194/37129
K 11
features.m4
V 25
file ugf.5kv.r23653/10421
K 12
freetype2.m4
V 23
file 2e2.5ck.r22118/494
K 15
gettimeofday.m4
V 25
file 16o.5ck.r19659/29370
K 6
ggz.m4
V 25
file 399.5kv.r25194/38436
K 15
glib-gettext.m4
V 25
file 12t.5kv.r24848/24739
K 8
gprof.m4
V 23
file 4jy.5ck.r21924/585
K 10
gtk-2.0.m4
V 25
file 12w.5kv.r31547/48685
K 10
gtk-3.0.m4
V 25
file 6zi.5kv.r31547/48938
K 14
gtk2-client.m4
V 25
file 19f.5kv.r25194/37979
K 14
gtk3-client.m4
V 25
file 6zj.5kv.r25194/38235
K 8
iconv.m4
V 24
file 12y.5ck.r22244/3548
K 8
imlib.m4
V 25
file 12z.5kv.r31547/49135
K 12
lcmessage.m4
V 25
file 13k.5ck.r21754/20096
K 9
lib-ld.m4
V 25
file 4e4.5bk.r14802/14718
K 11
lib-link.m4
V 25
file 4e5.5ck.r19659/25525
K 13
lib-prefix.m4
V 25
file 4e6.5ck.r19659/28003
K 9
locale.m4
V 25
file 2cp.5ck.r21754/20575
K 13
magickwand.m4
V 23
file 6nb.5kv.r30016/109
K 20
mapimg-magickwand.m4
V 23
file 6nc.5kv.r25644/168
K 8
mysql.m4
V 23
file 6ko.5kv.r25240/413
K 11
ngettext.m4
V 25
file 131.5ck.r19659/28185
K 12
no-client.m4
V 25
file 2cq.5ck.r15640/16763
K 6
pkg.m4
V 24
file 45j.5ck.r22101/3167
K 11
postgres.m4
V 25
file 6kp.5kv.r25194/37784
K 11
progtest.m4
V 21
file 13l.0.r4453/2479
K 12
qt-client.m4
V 23
file 6k7.5kv.r26898/857
K 5
qt.m4
V 23
file 78p.5ck.r21924/412
K 13
qt5-darwin.m4
V 25
file 1tpf.5kv.r29106/3385
K 6
qt5.m4
V 23
file tr7.5kv.r29628/750
K 11
readline.m4
V 24
file 133.5kv.r25029/2342
K 13
sdl-client.m4
V 25
file 16v.5kv.r31055/57100
K 6
sdl.m4
V 25
file 13j.5kv.r31547/49389
K 7
sdl2.m4
V 25
file sxo.5kv.r31547/49640
K 8
sound.m4
V 23
file 14o.5kv.r31063/132
K 10
sqlite3.m4
V 25
file 6kq.5kv.r25194/37330
K 12
vsnprintf.m4
V 25
file 134.5ck.r21754/19854
K 13
web-client.m4
V 23
file n5w.5ck.r22636/610
K 4
x.m4
V 25
file 14b.59m.r21754/20338
K 13
xaw-client.m4
V 25
file 2j4.5kv.r25194/39280
END
ENDREP
id: 12p.5kv.r31547/52086
type: dir
pred: 12p.5kv.r31063/2628
count: 218
text: 31547 49835 2238 0 e7a9ec4833d7e697720f497f092e5232
props: 17175 0 94 0 b7d1f67a2107948335edc0c95b3e2bf5
cpath: /branches/S2_5/m4
copyroot: 22812 /branches/S2_5

id: 4i.5kv.r31547/52326
type: file
pred: 4i.5kv.r31519/2250
count: 530
text: 31547 27426 42 121474 ae0061f33f5a08edd370a6a3c67c0996
props: 10955 1971 112 0 e17e3e5087e98ab1d6f041bdc6ae85ee
cpath: /branches/S2_5/server/cityturn.c
copyroot: 22812 /branches/S2_5

id: 15.5kv.r31547/52587
type: file
pred: 15.5kv.r31283/1085
count: 252
text: 31547 27330 23 48499 6b5147a5a80e26c95ad53ed8cc25fa5d
props: 10956 5264 112 0 3b4f53580729e091747f5670a0f86c52
cpath: /branches/S2_5/server/sernet.c
copyroot: 22812 /branches/S2_5

PLAIN
K 11
Makefile.am
V 22
file 5q.5kv.r26602/963
K 8
advisors
V 23
dir 4n2.5kv.r31486/6244
K 9
aiiface.c
V 25
file 4gm.5kv.r26906/48252
K 9
aiiface.h
V 25
file 4gn.5kv.r26906/48872
K 6
auth.c
V 25
file 39c.5ck.r20274/32101
K 6
auth.h
V 25
file 39d.5ck.r18977/19170
K 11
barbarian.c
V 21
file lw.5kv.r30826/85
K 11
barbarian.h
V 24
file lx.5ck.r22667/36940
K 14
citizenshand.c
V 25
file 6mz.5kv.r26906/48561
K 14
citizenshand.h
V 25
file 6n0.5kv.r26906/49176
K 10
cityhand.c
V 22
file 10.5kv.r31109/127
K 10
cityhand.h
V 23
file 4f.0.r13297/423686
K 11
citytools.c
V 23
file 4g.5kv.r31519/1992
K 11
citytools.h
V 23
file 4h.5kv.r28181/1632
K 10
cityturn.c
V 24
file 4i.5kv.r31547/52326
K 10
cityturn.h
V 24
file 4j.5ck.r22267/13479
K 11
civserver.c
V 22
file 4k.5kv.r27135/699
K 11
civserver.h
V 21
file 4l.0.r2805/33121
K 10
commands.c
V 25
file 2ly.5kv.r30822/10383
K 10
commands.h
V 24
file 2lz.5ck.r21821/2153
K 13
connecthand.c
V 24
file 2dw.5kv.r28919/2382
K 13
connecthand.h
V 24
file 2dx.5kv.r23607/6193
K 9
console.c
V 24
file dd.5kv.r24896/15603
K 9
console.h
V 23
file de.5kv.r31516/7439
K 10
diplhand.c
V 22
file 4m.5kv.r31503/376
K 10
diplhand.h
V 21
file 4n.0.r13421/6826
K 11
diplomats.c
V 23
file vz.5kv.r29539/1368
K 11
diplomats.h
V 23
file w0.5ck.r19106/3619
K 10
edithand.c
V 25
file 3bk.5kv.r31082/14090
K 10
edithand.h
V 25
file 4ez.5kv.r26906/55734
K 6
fcdb.c
V 23
file 6l3.5kv.r30954/112
K 6
fcdb.h
V 25
file 6l4.5kv.r26906/49786
K 10
gamehand.c
V 22
file 4o.5kv.r30552/386
K 10
gamehand.h
V 24
file 4p.5ck.r15698/24111
K 9
generator
V 24
dir 2me.5kv.r30691/36691
K 11
ggzserver.c
V 25
file 39a.5ck.r20126/49744
K 11
ggzserver.h
V 23
file 39b.5ck.r20191/350
K 10
handchat.c
V 24
file 4q.5kv.r25916/11288
K 10
handchat.h
V 24
file dj.5ck.r18270/28229
K 9
maphand.c
V 23
file 13.5kv.r31519/2509
K 9
maphand.h
V 23
file 14.5kv.r31519/2765
K 6
meta.c
V 21
file 4s.5kv.r31506/60
K 6
meta.h
V 24
file 4t.5kv.r24201/11322
K 8
notify.c
V 25
file 4i2.5kv.r26906/50393
K 8
notify.h
V 25
file 4i3.5kv.r26906/51304
K 9
plrhand.c
V 24
file 4u.5kv.r31032/10610
K 9
plrhand.h
V 22
file 4v.5kv.r29631/417
K 8
report.c
V 24
file vi.5kv.r29778/19605
K 8
report.h
V 24
file vj.5ck.r18270/29203
K 10
rssanity.c
V 23
file hew.5kv.r29525/472
K 10
rssanity.h
V 25
file hey.5kv.r26906/47945
K 9
ruleset.c
V 23
file 8w.5kv.r31135/2051
K 9
ruleset.h
V 23
file 8x.5kv.r27726/8225
K 13
sanitycheck.c
V 21
file wi.5kv.r30490/48
K 13
sanitycheck.h
V 24
file wj.5ck.r20315/26296
K 10
savegame.c
V 22
file vl.5kv.r30909/247
K 10
savegame.h
V 24
file vm.5ck.r20758/19233
K 11
savegame2.c
V 23
file 4m0.5kv.r30909/498
K 11
savegame2.h
V 25
file 4m1.5kv.r26906/51604
K 7
score.c
V 24
file 2eg.5ck.r21929/5694
K 7
score.h
V 24
file 2eh.5ck.r21929/6179
K 9
scripting
V 23
dir 31x.5kv.r28154/1270
K 8
sernet.c
V 24
file 15.5kv.r31547/52587
K 8
sernet.h
V 24
file 4y.5ck.r19197/31924
K 10
settings.c
V 24
file 2m0.5kv.r31516/7694
K 10
settings.h
V 24
file 2m1.5kv.r28749/4647
K 11
spacerace.c
V 23
file 9a.5kv.r31486/6497
K 11
spacerace.h
V 23
file 9b.5kv.r31486/6758
K 9
srv_log.c
V 24
file 15t.5rj.r27916/1203
K 9
srv_log.h
V 24
file 15u.5rk.r27916/1727
K 10
srv_main.c
V 23
file vg.5kv.r31505/3031
K 10
srv_main.h
V 24
file vh.5kv.r29283/43987
K 11
stdinhand.c
V 22
file 4z.5kv.r30908/167
K 11
stdinhand.h
V 24
file 50.5kv.r25916/11029
K 11
techtools.c
V 23
file 33n.5kv.r30937/113
K 11
techtools.h
V 24
file 33o.5kv.r27063/3156
K 10
unithand.c
V 23
file 18.5kv.r29539/1629
K 10
unithand.h
V 24
file 19.5ck.r21095/21648
K 11
unittools.c
V 24
file 1a.5kv.r31032/10873
K 11
unittools.h
V 24
file 1b.5kv.r31032/11137
K 8
voting.c
V 25
file 4ex.5kv.r26906/50088
K 8
voting.h
V 25
file 4ey.5kv.r26906/51006
END
ENDREP
id: z.5kv.r31547/56547
type: dir
pred: z.5kv.r31519/6719
count: 5497
text: 31547 52845 3689 0 aeaf5b6e597f3d06f9e263605790f78c
props: 23991 453 166 0 e5026e1cb18fe57b41417951bfac7b19
cpath: /branches/S2_5/server
copyroot: 22812 /branches/S2_5

id: dh.5nm.r31547/56791
type: file
pred: dh.5nm.r29572/13544
count: 126
text: 31547 27553 75 105878 fa1ea5ccc28ca2e6d2559c026190273a
props: 11100 7043 111 0 b4cfde065419379bdf3504580a67fa13
cpath: /branches/S2_5/utility/registry_ini.c
copyroot: 20530 /trunk/utility/registry_ini.c

id: bw9.5kv.r31547/57073
type: file
pred: bw9.5kv.r26906/38471
count: 5
text: 31547 27378 20 6611 c8b177adf226eef04974b1f2cbf2a4d1
props: 26906 38424 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /branches/S2_5/utility/section_file.c
copyroot: 22812 /branches/S2_5

PLAIN
K 11
Makefile.am
V 25
file 2gg.5kv.r26189/11447
K 9
astring.c
V 23
file h5.5ck.r22395/1264
K 9
astring.h
V 23
file h6.5ck.r20479/1668
K 11
bitvector.c
V 25
file 4un.5kv.r26906/38163
K 11
bitvector.h
V 25
file 4uo.5kv.r26906/39090
K 12
capability.c
V 21
file 7p.5ck.r20361/90
K 12
capability.h
V 24
file 7q.5ck.r18858/85852
K 12
distribute.c
V 26
file 2lp.5ck.r19259/362511
K 12
distribute.h
V 25
file 2lq.5ck.r18858/87951
K 9
fc_utf8.c
V 23
file 4ku.5kv.r26945/198
K 9
fc_utf8.h
V 25
file 4kv.5kv.r26906/38782
K 13
fcbacktrace.c
V 22
file 731.5kv.r26960/60
K 13
fcbacktrace.h
V 25
file 732.5kv.r26906/37250
K 9
fciconv.c
V 24
file 2g7.5kv.r26807/3206
K 9
fciconv.h
V 25
file 2g8.5ck.r18858/89144
K 8
fcintl.c
V 22
file k3.5kv.r30878/137
K 8
fcintl.h
V 24
file fw.5kv.r24145/31999
K 10
fcthread.c
V 25
file 6hv.5kv.r26906/32941
K 10
fcthread.h
V 25
file 6hw.5kv.r26906/33243
K 20
generate_specenum.py
V 24
file 4ia.5kv.r23283/1974
K 9
genhash.c
V 24
file 57v.5kv.r27502/8440
K 9
genhash.h
V 25
file 57w.5kv.r27498/46583
K 9
genlist.c
V 22
file 51.5kv.r29870/642
K 9
genlist.h
V 21
file 52.5kv.r29981/44
K 11
inputfile.c
V 21
file h9.5kv.r29814/49
K 11
inputfile.h
V 24
file ha.5ck.r18858/84203
K 5
ioz.c
V 21
file uh.5kv.r30309/71
K 5
ioz.h
V 23
file ui.5kv.r24201/7308
K 10
iterator.c
V 25
file 4h5.5kv.r26906/34168
K 10
iterator.h
V 25
file 4f3.5kv.r26906/35098
K 5
log.c
V 21
file 53.5kv.r24497/53
K 5
log.h
V 24
file 54.5kv.r30376/30380
K 5
md5.c
V 22
file 33q.5kv.r25083/54
K 5
md5.h
V 25
file 33r.5ck.r19849/16287
K 5
mem.c
V 25
file d9.5ck.r19259/362758
K 5
mem.h
V 24
file da.5ck.r20315/22211
K 9
netfile.c
V 22
file 6m8.5kv.r31528/93
K 9
netfile.h
V 25
file 6m9.5kv.r26906/34478
K 9
netintf.c
V 21
file t6.5kv.r31347/51
K 9
netintf.h
V 23
file t7.5kv.r31283/5534
K 6
rand.c
V 25
file m5.5ck.r19259/363664
K 6
rand.h
V 24
file m6.5ck.r20315/22687
K 10
registry.c
V 25
file agw.5kv.r26906/35712
K 10
registry.h
V 25
file 7po.5kv.r26906/36324
K 14
registry_ini.c
V 24
file dh.5nm.r31547/56791
K 14
registry_ini.h
V 24
file di.5or.r26115/21372
K 14
section_file.c
V 25
file bw9.5kv.r31547/57073
K 14
section_file.h
V 25
file axo.5kv.r26906/39392
K 8
shared.c
V 22
file 55.5kv.r29710/115
K 8
shared.h
V 23
file 1d.5kv.r31503/4572
K 10
spechash.h
V 25
file 57x.5kv.r27498/46844
K 10
speclist.h
V 21
file gb.5kv.r23840/61
K 8
specpq.h
V 26
file 1brz.5kv.r26906/37857
K 9
specvec.h
V 24
file z9.5kv.r29572/13826
K 15
string_vector.c
V 25
file 4hy.5kv.r26906/33851
K 15
string_vector.h
V 25
file 4hz.5kv.r26906/34784
K 9
support.c
V 24
file m9.5kv.r31003/75279
K 9
support.h
V 22
file ma.5kv.r28237/161
K 8
timing.c
V 23
file el.5kv.r24201/8068
K 8
timing.h
V 24
file em.5ck.r22382/27015
END
ENDREP
id: 1c.5kv.r31547/60042
type: dir
pred: 1c.5kv.r31528/3051
count: 889
text: 31547 57338 2691 0 7843a273d72c1ef4f0feddb6c4e0d658
props: 17175 331 84 0 5447a85ba28edec0d4a8f6120070e2b2
cpath: /branches/S2_5/utility
copyroot: 22812 /branches/S2_5

PLAIN
K 9
ABOUT-NLS
V 24
file fu.5kv.r23463/86338
K 7
AUTHORS
V 24
file 5u.5ck.r22143/14016
K 7
COPYING
V 22
file 1h.5kv.r29456/845
K 9
ChangeLog
V 26
file 6l.5kv.r31494/6322536
K 7
INSTALL
V 21
file 6.5kv.r29707/213
K 11
Makefile.am
V 23
file 59.5kv.r29106/3136
K 4
NEWS
V 22
file 6m.5kv.r28524/894
K 8
NEWS-2.5
V 26
file 1h59.5kv.r31492/18865
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 21
dir 8.5kv.r31543/8385
K 10
autogen.sh
V 22
file 12o.5kv.r31344/77
K 9
bootstrap
V 23
dir 2p5.5kv.r28599/3351
K 6
client
V 22
dir d.5kv.r31547/41389
K 6
common
V 22
dir p.5kv.r31547/48182
K 12
configure.ac
V 23
file 149.5kv.r31511/317
K 4
data
V 21
dir w.5kv.r31502/3020
K 6
debian
V 22
dir 5w.5kv.r23304/4091
K 12
dependencies
V 23
dir 2yu.5kv.r31544/1314
K 11
diff_ignore
V 24
file qq.5ck.r21039/26581
K 3
doc
V 22
dir k7.5kv.r31438/6914
K 10
fc_version
V 22
file 2lo.5kw.r31493/46
K 2
m4
V 24
dir 12p.5kv.r31547/52086
K 7
scripts
V 23
dir 2yo.5kv.r28718/5390
K 6
server
V 22
dir z.5kv.r31547/56547
K 5
tests
V 22
dir 2g9.5kv.r31522/647
K 5
tools
V 23
dir 4pj.5lo.r29030/2274
K 12
translations
V 27
dir t0n.5kv.r31491/11064088
K 7
utility
V 23
dir 1c.5kv.r31547/60042
K 3
vms
V 25
dir u9.5ck.r21528/1396085
K 5
win32
V 23
dir 2eu.5kv.r30467/1744
END
ENDREP
id: 3.5kv.r31547/61539
type: dir
pred: 3.5kv.r31544/2811
count: 18348
text: 31547 60287 1239 0 e12eba36285c31c6b37dede46823431e
props: 20140 3888 282 0 e4bb46e81629a60eef613b169b23a9ea
cpath: /branches/S2_5
copyroot: 22812 /branches/S2_5

PLAIN
K 5
S1_14
V 21
dir 3.21.r18109/18803
K 4
S2_0
V 21
dir 3.10x.r21862/4178
K 4
S2_1
V 22
dir 3.59e.r20026/11014
K 4
S2_2
V 21
dir 3.5cy.r21861/5036
K 4
S2_3
V 21
dir 3.5f2.r29458/5135
K 4
S2_4
V 22
dir 3.5ii.r30401/87429
K 4
S2_5
V 22
dir 3.5kv.r31547/61539
K 4
S2_6
V 22
dir 3.5qi.r31546/34970
K 11
freeciv-web
V 22
dir 3.5bl.r13594/14918
END
ENDREP
id: 1.0.r31547/62133
type: dir
pred: 1.0.r31546/35565
count: 10626
text: 31547 61778 342 0 ece9e1b8211703b98c7b1d858ae28216
cpath: /branches
copyroot: 0 /

PLAIN
K 8
branches
V 20
dir 1.0.r31547/62133
K 4
tags
V 19
dir 2.0.r31496/6515
K 5
trunk
V 22
dir 3.5ck.r31545/39275
K 7
website
V 21
dir 3ge.0.r31498/1891
END
ENDREP
id: 0.0.r31547/62456
type: dir
pred: 0.0.r31546/35887
count: 31547
text: 31547 62289 154 0 cc3fef0da9e5ffce3e90192a2c6c7e47
cpath: /
copyroot: 0 /

gz.5kv.t31546-1 modify true false /branches/S2_5/client/control.c

10m.5kv.t31546-1 modify true false /branches/S2_5/client/gui-gtk-2.0/gui_stuff.c

10m.5kx.t31546-1 modify true false /branches/S2_5/client/gui-gtk-3.0/gui_stuff.c

6n9.5kv.t31546-1 modify true false /branches/S2_5/common/mapimg.c

6ky.5pf.t31546-1 modify true false /branches/S2_5/common/scriptcore/luascript.c

12q.5kv.t31546-1 modify true false /branches/S2_5/m4/ac_path_lib.m4

12w.5kv.t31546-1 modify true false /branches/S2_5/m4/gtk-2.0.m4

6zi.5kv.t31546-1 modify true false /branches/S2_5/m4/gtk-3.0.m4

12z.5kv.t31546-1 modify true false /branches/S2_5/m4/imlib.m4

13j.5kv.t31546-1 modify true false /branches/S2_5/m4/sdl.m4

sxo.5kv.t31546-1 modify true false /branches/S2_5/m4/sdl2.m4

4i.5kv.t31546-1 modify true false /branches/S2_5/server/cityturn.c

15.5kv.t31546-1 modify true false /branches/S2_5/server/sernet.c

dh.5nm.t31546-1 modify true false /branches/S2_5/utility/registry_ini.c

bw9.5kv.t31546-1 modify true false /branches/S2_5/utility/section_file.c


62456 62604
