DELTA 16023 63 4062
SVN  Ò,Õt“z ‰
 €t nŠ „*‹€‚e [‘.· c’@€{ ^“z¸ J¢ ¨ †9£k€g 
ªT· !¬ ‚0­/€ƒt R²X€‚X ƒ"¶ #¹1 Q­/ _¹h {¼± Š>½#€„t k”  ƒÏ/* utility */
#include "fcintl.h"
#include "shared.h"
#include "string_vector.h"
#include "support.h"

/* common */
#include "events.h"
#include "game.h"
#include "packets.h"
#include "player.h"

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

/* gui-xaw */  void *gui_data;

  create_option_dialog();

  client_options_iterate(poption) {
    gui_data = option_get_gui_data(poption);

    switch (option_type(poption)) {
    case COT_BOOLEAN:
      XtVaSetValues((Widget) gui_data, XtNstate, option_bool_get(poption),
                    XtNlabel, option_bool_get(poption) ? _("Yes") : _("No"),
                   option_int_get(poption));
      XtVaSetValues((Widget) gui_data,
                    option_str_values(poption) ? "label" : XtNstring,
                    option_str_get(poption)poption) {
    const char *descr = option_description(poption_set_gui_data(poption, prev_widget)poption) {
    void *gui_data = option_get_gui_data(poption);

    /* 
     * At the start of the loop ption_type(poption)) {
    case COT_BOOLEAN:
      if (ption_str_values(poption)) {
        const struct strvec *vals = option_str_values(poption);
	Widget popupmenu;

        if (gui_data) {
	  prev_widget =
            XtVaCreateManagedWidget(option_name(poption),
                                    menuButtonWidgetClass,
				    option_scrollform,
				    XtNfromHoriz, option_label,
				    XtNfromVert, gui_data,
				    NULL);
	} else {
	  prev_widget =
            XtVaCreateManagedWidget(option_name(poption),
                                           strvec_iterate(vals, val) {
	  Widget entry = XtVaCreateManagedWidget(val, smeBSBObjectClass,
                                                 popupmenu, NULL);
          XtAddCallback(entry, XtNcallback, stropt_change_callback,
                        (XtPointer) val);
        } strvec_iterate_end;

        if (0 == strvec_size(vals)ption_set_gui_data(poption, (void *) prev_widget)  Widget gui_data;

  client_options_iterate(poption) {
    gui_data = (Widget) option_get_gui_data(poption);

    switch (option_type(poption)) {
    case COT_BOOLEAN:
      XtVaGetValues(gui_data, XtNstate, &b, NULL);
      (void) option_bool_set(poption, b);
      break;
    case COT_INTEGER:
      XtVaGetValues(gui_data, XtNstring, &dp, NULL);
      sscanf(dp, "%d", &val);
      (void) option_int_set(poption, val);
      break;
    case COT_STRING:
      XtVaGetValues(gui_data,
                    option_str_values(poption) ? "label" : XtNstring,
                    &dp, NULL);
      (void) option_str_set(poption, dpENDREP
DELTA 14370 2641383 6007
SVN  ‚ƒe‚‚4gŒ1 Š) Š 0Š1 ƒi˜S Œr‹O G ­ Jœ@ ™{› ·€: c¹9€[ …(»[ Qå@Š Jœ@ ž*Â+‚ {àW …0æ€D Sá ‡NíQ³ –
õO‡ ‰/‹[‡ ˆ%•º …=i€ L£vŸ \®v ‘ ¥@€F ƒf¶9‡ ‡º!° ‚EÁN† ‡eÄ ‚Ë|„ ƒ+Î¶ ‚1Ñs€M G  ŽZÕ9€R äq† ?æ€d ‹vé'‚ ŽHõlient_main
******
  Return the name of the given theme.
int log_level = LOG_DEBUG;
log_level, "\"%s\": %s file appears incompatible:",
	    filename, which);
    freelog(log_level, "  datafile options: %s", file_capstr);
    freelog(log_level, "  supported options: %s"log_level, "\"%s\": %s file requires option(s)"
			 " that client doesn't support:",
	    filename, which);
    freelog(log_level, "  datafile options: %s", file_capstr);
    freelog(log_level, "  supported options: %s"Clean up.
nv\"%s\".", real_full_name);
      s = load_gfxfile(real_full_name);
      if (s) {
	return s;
      }
    }
  }

  freelog(LOG_ERROR, "Could not load gfx file \"%s\".", gfx_filename);
  return NULL"Could not load gfx file for the spec file \"%s\"."\"%s\".\"%s\"."Couldn't find a supported gfx file extension for \"%s\"."freelog(LOG_ERROR, "Can't find theme \"%s\".", theme_name); 
    theme_free(t);
    return NULL;
  }
  freelog(LOG_VERBOSE, "themespec file is \"%s\"."Could not open \"%s\".", fnamefreelog(LOG_ERROR, "Can't find spec file \"%s\".", spec_filenames[i]);\"%s\"."Couldn't load gfx file \"%s\" for sprite '%s'."\"%s\".'%s''%s' and alternate '%s' are both missing.", tag, alt);LOG_VERBOSE, tag, alt,\
						   "sprite", #field);	    \
  } while (FALSE)

 int loglevel,
					   const char *tag, const char *alt,
					   const char *what,\"%s\"\"%s\" (instead of \"%s\") for %s \"%s\".",
	    alt, tag, what, name);
    return sp;
  }

  freelog(loglevel,
	  "Don't have graphics tags \"%s\" or \"%s\" for %s \"%s\".",
	  tag, alt, what, name);
  if (LOG_FATAL >= loglevel()ENDREP
DELTA 16113 0 239
SVN  éTê|8ƒ{ §: ¼ „	§7½ R£> ·j¬€g ŽCå€_ “ ô7€ ˆ|‡+ Et Ö~’Vclient.conn.playing = NULL;
  client.conn.observer = FALSE;

  client.conn.playing = NULL;
  client.conn.observer = FALSEinit_player_dlg_common();
  init_themes();
  settable_options_init();

  options_init();
  options_loadoptions_save();
  }
  
  tileset_free(tileset);
  
  ui_exit();
  
  chatline_common_done();
  C_S_PREPARING == newstate
      && (client_has_player() || client_is_observer())) {
    /* Reset the delta-state. */
    conn_clear_packet_cache(&client.conn);options_load_ruleset_specificENDREP
DELTA 16023 15377 5882
SVN  ­l±:2˜9 †) €S ƒ`‡&€…C ‡5‘f€„ Lœ6€‡ „L¡Q€‚ q§d€ƒj :¬2/* utility */
#include "fcintl.h"
#include "string_vector.h"
#include "support.h"

/* common */
#include "game.h"

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

/* gui-win32 */
#include "gui_stuff.h"
#include "gui_main.h"
void *gui_data;
      char dp[512];
      int val;
      
      client_options_iterate(poption) {
        gui_data = option_get_gui_data(poption);

	switch (option_type(poption)) {
	case COT_BOOLEAN:
          (void) option_bool_set(poption,
                                 Button_GetCheck((HWND)(gui_data))
                                 == BST_CHECKED);
	  break;
	case COT_INTEGER:
	  GetWindowText((HWND)(gui_data),dp,sizeof(dp));
          if (1 == sscanf(dp, "%d", &val)) {
            (void) option_int_set(poption, val);
          }
	  break;
	case COT_STRING:
	  if (!gui_data) {
	    break;
	  }
	  GetWindowText((HWND) (gui_data), dp, sizeof(dp));
          (void) option_str_set(poption, dp);poption) {
    switch (option_type(poption)) {
    case COT_BOOLEAN:
      fcwin_box_add_static(vbox_labels, option_description(poption),
			   0,SS_LEFT,TRUE,TRUE,0);
      option_set_gui_data(poption, (void *)
                          fcwin_box_add_checkbox(vbox," ",0,0,TRUE,TRUE,0));
      break;
    case COT_INTEGER:
      fcwin_box_add_static(vbox_labels,option_description(poption),
			   0,SS_LEFT,TRUE,TRUE,0);
      option_set_gui_data(poption, (void *)
                          fcwin_box_add_edit(vbox,"",6,0,0,TRUE,TRUE,0)option_description(poption),
			   0,SS_LEFT,TRUE,TRUE,0);
      if (option_str_values(poption)) {
        const struct strvec *vals = option_str_values(poption);

	if (0 == strvec_size(vals)) {
	  fcwin_box_add_static(vbox, option_str_get(poption), 0, SS_LEFT,
			       TRUE, TRUE, 0);
          option_set_gui_data(poption, NULL);
	} else {
          option_set_gui_data(poption, (void *)
                              fcwin_box_add_combo(vbox, 5, 0,
                              WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT,
                              TRUE, TRUE, 0));

          strvec_iterate(vals, val) {
            ComboBox_AddString(option_get_gui_data(poption), val);
          } strvec_iterate_end;
	}
      } else {
        option_set_gui_data(poption, (void *)
                            fcwin_box_add_edit(vbox, "", 40, 0, 0,
                                               TRUE, TRUE, 0)  void *gui_data;

  if (!option_dialog)
    create_option_dialog();

  client_options_iterate(poption) {
    gui_data = option_get_gui_data(poption);

    switch (option_type(poption)) {
    case COT_BOOLEAN:
      Button_SetCheck((HWND)(gui_data),
		      option_bool_get(poptionoption_int_get(poption));
      SetWindowText((HWND)(gui_data), valstr);
      break;
    case COT_STRING:
      if (!gui_data) {
	break;
      }

      if (option_str_values(poption) && option_str_get(poption)[0] != 0) {
	int i =
	    ComboBox_FindStringExact(gui_data, 0, option_str_get(poption));

	if (i == CB_ERR) {
	  i = ComboBox_AddString(gui_data, option_str_get(poption));
	}
	ComboBox_SetCurSel(gui_data, i);
      } 
      SetWindowText((HWND)(gui_data), option_str_get(poption)ENDREP
DELTA 15813 1586 43934
SVN  ƒOƒO ‚ôT Œ ¨o‚ô`options_saveENDREP
DELTA 16015 1210 2016
SVN  ‚®b‚®b º Œ ôFºoptions_saveENDREP
DELTA 11333 13837 1052
SVN  *=ˆi †N  †Q€ˆioptions.h"

#include "themebackgrounds.h"
#include "themecolors.h"

struct sprite;			/* opaque; gui-dep */

struct theme;

extern struct theme *theme;

const char **get_theme_list(void);

struct theme *theme_read_toplevel(const char *theme_name);
void theme_free(struct theme *theme);
void theme_load_sprites(struct theme *t);
void theme_free_sprites(struct theme *t);

void themespec_try_read(const char *theme_name);
void themespec_reread(const char *theme_name);

struct sprite* theme_lookup_sprite_tag_alt(struct theme *t, int loglevel,
					   const char *tag, const char *alt,
					   const char *what, const char *name);

struct theme_color_system;
struct theme_color_system *theme_get_color_system(const struct theme *t);

struct theme_background_system;
struct theme_background_system *theme_get_background_system(const struct theme *t);  

char *themespec_gfx_filename(const char *gfx_filename);

/* theme accessor functions. */
const char *theme_get_name(const struct theme *t);
const char *theme_font_filename(const struct theme *t);
int theme_default_font_size(const struct theme *t);

#endif  /* FC__THEMESPEC_H */
ENDREP
DELTA 13038 756812 9722
SVN  ŠT‘R"«` †X €‚( ˆ>— E×@ ˆ8Š€Q šS“Š ¡W­s€ C×@† AŽ@ ‚@Ñr€@ Ôj M«@ ‚=Ö<€‹L N×@€{ C×@† AŽ@ gèj… =éQ€‚H jí%€ƒ, yï€@ ‚#ðP€‚ ô9¿ õy€‡K ƒ|ýs« [m€‡j H‰ €@ a‰s/* utility */
#include "log.h"
#include "shared.h"
#include "string_vector.h"
#include "support.h"

/* common */
#include "events.h"
#include "fcintl.h"
#include "government.h"
#include "packets.h"
#include "player.h"

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

/* gui-gtk-2.0 */
#include "optiondlg.h"NULL != client.conn.playing) {
    maxrate = get_player_bonus(client.conn.playingclient.conclient.conn.playing->economic.tax, 0,
		   client.conn.playing->economic.luxury, 0,
		   client.conn.playing->economic.science, 0);
  return shell;
}

... 
client.conn.playing),
      get_player_bonus(client.conn.playingprocessing(void)
{
  GtkWidget *w;

  client_options_iterate(poption) {
    w = GTK_WIDGET(option_get_gui_data(poption));
    switch (option_type(poption)) {
    case COT_BOOLEAN:
      (void) option_bool_set(poption, gtk_toggle_button_get_active
                             (GTK_TOGGLE_BUTTON(w)));
      break;

    case COT_INTEGER:
      {
        int val;

        if (1 == sscanf(gtk_entry_get_text(GTK_ENTRY(w)), "%d", &val)) {
          (void) option_int_set(poption, val);
        }
      }
      break;

    case COT_STRING:
      if (option_str_values(poption) != NULL) {
        (void) option_str_set(poption, gtk_entry_get_text
                              (GTK_ENTRY(GTK_COMBO(w)->entry)));
      } else {
        (void) option_str_set(poption, gtk_entry_get_text(GTK_ENTRY(w)));
      }
      break;

    case COT_FONT:
      if (option_font_set(poption, gtk_font_button_get_font_name
                          (GTK_FONT_BUTTON(w)))) {
        gui_update_font_from_option(poption);
      }
      break;
    }
  } client_options_iterate_end;

  if (gui_gtk2_map_scrollbars) {
    gtk_widget_show(map_horizontal_scrollbar);
    gtk_widget_show(map_vertical_scrollbar);
  } else {
    gtk_widget_hide(map_horizontal_scrollbar);
    gtk_widget_hide(map_vertical_scrollbar);
  }
  if (fullscreen_mode) {
    gtk_window_fullscreen(GTK_WINDOW(toplevel));
  } else {
    gtk_window_unfullscreen(GTK_WINDOW(toplevel));
  }

  gtk_rc_reset_styles(gtk_settings_get_default());
}in, gint rid)
{
  switch (rid) {
  case GTK_RESPONSE_ACCEPT:
    option_command_processing();
    options_save();
    break;
  case GTK_RESPONSE_APPLY:
    option_command_processing();
    break;
  default:
    break;
  };
  gtk_widget_destroy(win);
}
... 
, *sw GTK_RESPONSE_CANCEL,
	GTK_STOCK_APPLY, GTK_RESPONSE_APPLY,
	GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
	NULL);
  setup_dialog(option_dialog_shell, toplevel);
  gtk_window_set_position(GTK_WINDOW(option_dialog_shell),
                          GTK_WIN_POS_MOUSE);
  gtk_window_set_default_size(GTK_WINDOW(option_dialog_shell), -1, 400                     notebook, TRUE, TRUE, 0);

  for (i = 0; i < COC_MAX; i++) {
    label = gtk_label_new_with_mnemonic(option_class_name(i));

    sw = gtk_scrolled_window_new(NULL, NULL);
    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
                                   GTK_POLICY_NEVER,
                                   GTK_POLICY_AUTOMATIC);
    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), sw, label);
scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), alignpoption) {
    GtkWidget *hbox, *w = NULL;
    enum client_option_class oclass = option_class(poption);

    if (oclass == COC_MAX) {
      continue;
    }

    i = len[oclass];

    hbox = gtk_hbox_new(FALSE, 2);
    gtk_container_add(GTK_CONTAINER(vbox[oclassclass], ebox);

    label = gtk_label_new(option_description(pooption_help_text(poption), NULL);

    switch (option_type(poption)) {
    case COT_BOOLEAN:
      w = gtk_check_button_new();
      break;

    case COT_INTEGER:
      w = gtk_entry_new();
      gtk_entry_set_max_length(GTK_ENTRY(w), 5);
      gtk_widget_set_size_request(w, 45, -1);
      break;

    case COT_STRING:
      if (option_str_values(poption) != NULL) {
        w = gtk_combo_new();
      } else {
        w = gtk_entry_new();
      }
      gtk_widget_set_size_request(w, 150, -1);
      break;

    case COT_FONT:
      w = gtk_font_button_new();
      g_object_set(G_OBJECT(w), "use-font", TRUE, NULL);
      break;
    }

    option_set_gui_data(poption, w);
    if (w == NULL) {
      freelog(LOG_ERROR, "Failed to create a widget for option %d \"%s\".",
              option_number(poption), option_name(poption));
      continue;
    }

    gtk_container_add(GTK_CONTAINER(hbox), w);
    gtk_size_group_add_widget(group[1][oclass], w);

    len[oclass  const struct strvec *vals;
  GtkWidget *wpoption) {
    w = GTK_WIDGET(option_get_gui_data(poption));

    switch (option_type(poption)) {
    case COT_BOOLEAN:
      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
                                   option_bool_get(poption));
      break;

    case COT_INTEGER:
      my_snprintf(valstr, sizeof(valstr), "%d", option_int_get(poption));
      gtk_entry_set_text(GTK_ENTRY(w), valstr);
      break;

    case COT_STRING:
      if ((vals = option_str_values(poption))) {
        GList *items = NULL;
        const char *current_val = option_str_get(poption);

        strvec_iterate(vals, val) {
          if (strcmp(val, current_val) != 0) {
            items = g_list_prepend(items, (gpointer) val);
            continue;
          }
        } strvec_iterate_end;
        items = g_list_prepend(items, (gpointer) current_val);
        gtk_combo_set_popdown_strings(GTK_COMBO(w), items);
      } else {
        gtk_entry_set_text(GTK_ENTRY(w), option_str_get(poption));
      }
      break;
w),
                                    option_font_get(poption)ENDREP
DELTA 15685 0 6055
SVN  èyæ!{ ›% €b ‚3œ]€ ®f¢• —hÑ
  *num_entries_used = 0;
  *total_cost = 0;

  if (NULL == client.conn.playing) {
    return;
  }unit_list_iterate(pcity->units_supported, punit) {
	if (unit_type(punit) == unittype) {
	  count++;
	  partial_cost += punit->upkeepoptions_load_settableENDREP
DELTA 16073 31037 18991
SVN  ƒE„û%…]í …t  †Œ ƒ~‡ A  ip€Þ= j‹
€L @r |‘] š“[€8 ­\€…8 R³s€m aµl€‚8 ½d¸1€ˆF rü{€ dþW€. O›8€9 O›8€‚B ƒ%”Z€q O›8 ƒ(™€\ O›8€@ O›8€ƒ_ g£ € O›8€9 O›8 x§€ Õ.·l G ² d‚@€n G ´ d‚@€H G €E P‚@€‚x G €F d‚@½ G €E d‚@€Y G €L N‚@€] G ¯ N‚@€‚ G €O N‚@€ƒ_ G €G N‚@€‰X G ¨ N‚@€ G ¦ N‚@€ G º N‚@€ G ¹ N‚@€ G ¦ N‚@€ G § N‚@€ G · O‚?€„ G § N‚@€	 G ª N‚@€ G » N‚@€L G €C N‚@€H G €] N‚@€‚9 G » N‚@€B G €C N‚@€> G €D N‚@€> G €D N‚@€> G €] N‚@€‚ G º N‚@€M G €B N‚@€J G ¸ N‚@€‚ G €\ N‚@€ƒ< G ¸ N‚@€J G €@ N‚@€G G €Z N‚@€ƒ1 ‚Ž ‚“;‡ ‡W‚”V‡ ¡7‚œ-œ V‚‘@š š?‚¾pŒ ‰E‚ÙC© …i‚çE¨ A  ]‚ír …~‚ïl• V‚‘@‘ c‚ïl ƒ‚÷'€„{ ‰X‚ý G £ N‚@€Œu G  N‚@¸ G   ƒ‡;‡ †jƒˆ[tring_vector
struct client_option {
  const char *name;             /* Short name - used as an identifier */
  const char *description;      /* One-line description */
  const char *help_text;        /* Paragraph-length help text */
  enum client_option_class category;
  enum gui_type specific;       /* GUI_LAST for common options. */
  enum client_option_type type;
  union {
    /* COT_BOOLEAN type option. */
    struct {
      bool *const pvalue;
      const bool def;
    } boolean;
    /* COT_INTEGER type option. */
    struct {
      int *const pvalue;
      const int def, min, max;
    } integer;
    /* COT_STRING type option. */
    struct {
      char *const pvalue;
      const size_t size;
      const char *const def;
      /* 
       * A function to return a string vector of possible string values,
       * or NULL for none. 
       */
      const struct strvec *(*const val_accessor) (void);
    } string;
    /* COT_FONT type option. */
    struct {
      char *const pvalue;
      const size_t size;
      const char *const def;
    } font;
  };
  void (*changed_callback) (struct client_option *option);

  /* volatile */
  void *gui_data;
};

/*
 * Generate a client option of type COT_BOOLEAN.
 *
 * oname: The option data.  Note it is used as name to be loaded or saved.
 *        So, you shouldn't change the name of this variable in any case.
 * odesc: A short description of the client option.  Should be used with the
 *        N_() macro.
 * ohelp: The help text for the client option.  Should be used with the N_()
 *        macro.
 * ocat:  The client_option_class of this client option.
 * ospec: A gui_type enumerator which determin for what particular client
 *        gui this option is for.  Sets to GUI_LAST for common options.
 * odef:  The default value of this client option (FALSE or TRUE).
 * ocb:   A callback function of type void (*)(struct client_option *)
 *        called when the option changed.
 */
#define GEN_BOOL_OPTION(oname, odesc, ohelp, ocat, ospec, odef, ocb)        \
{                                                                           \
  .name = #oname,                                                           \
  .description = odesc,                                                     \
  .help_text = ohelp,                                                       \
  .category = ocat,                                                         \
  .specific = ospec,                                                        \
  .type = COT_BOOLEAN,                                                      \
  {                                                                         \
    .boolean = {                                                            \
      .pvalue = &oname,                                                     \
      .def = odef,                                                          \
    }                                                                       \
  },                                                                        \
  .changed_callback = ocb,                                                   \
}

/*
 * Generate a client option of type COT_INTEGER.
 *
 * oname: The option data.  Note it is used as name to be loaded or saved.
 *        So, you shouldn't change the name of this variable in any case.
 * odesc: A short description of the client option.  Should be used with the
 *        N_() macro.
 * ohelp: The help text for the client option.  Should be used with the N_()
 *        macro.
 * ocat:  The client_option_class of this client option.
 * ospec: A gui_type enumerator which determin for what particular client
 *        gui this option is for.  Sets to GUI_LAST for common options.
 * odef:  The default value of this client option.
 * omin:  The minimal value of this client option.
 * omax:  The maximal value of this client option.
 * ocb:   A callback function of type void (*)(struct client_option *)
 *        called when the option changed.
 */
#define GEN_INT_OPTION(oname, odesc, ohelp, ocat, ospec, odef, omin, omax, ocb) \
{                                                                           \
  .name = #oname,                                                           \
  .description = odesc,                                                     \
  .help_text = ohelp,                                                       \
  .category = ocat,                                                         \
  .specific = ospec,                                                        \
  .type = COT_INTEGER,                                                      \
  {                                                                         \
    .integer = {                                                            \
      .pvalue = &oname,                                                     \
      .def = odef,                                                          \
      .min = omin,                                                          \
      .max = omax                                                           \
    }                                                                       \
  },                                                                        \
  .changed_callback = ocb,                                                   \
}

/*
 * Generate a client option of type COT_STRING.
 *
 * oname: The option data.  Note it is used as name to be loaded or saved.
 *        So, you shouldn't change the name of this variable in any case.
 *        Be sure to pass the array variable and not a pointer to it because
 *        the size is calculated with sizeof().
 * odesc: A short description of the client option.  Should be used with the
 *        N_() macro.
 * ohelp: The help text for the client option.  Should be used with the N_()
 *        macro.
 * ocat:  The client_option_class of this client option.
 * ospec: A gui_type enumerator which determin for what particular client
 *        gui this option is for.  Sets to GUI_LAST for common options.
 * odef:  The default string for this client option.
 * ocb:   A callback function of type void (*)(struct client_option *)
 *        called when the option changed.
 */
#define GEN_STR_OPTION(oname, odesc, ohelp, ocat, ospec, odef, ocb)         \
{                                                                           \
  .name = #oname,                                                           \
  .description = odesc,                                                     \
  .help_text = ohelp,                                                       \
  .category = ocat,                                                         \
  .specific = ospec,                                                        \
  .type = COT_STRING,                                                       \
  {                                                                         \
    .string = {                                                             \
      .pvalue = oname,                                                      \
      .size = sizeof(oname),                                                \
      .def = odef,                                                          \
      .val_accessor = NULL                                                  \
    }                                                                       \
  },                                                                        \
  .changed_callback = ocb,                                                   \
}

/*
 * Generate a client option of type COT_STRING with a string accessor
 * function.
 *
 * oname: The option data.  Note it is used as name to be loaded or saved.
 *        So, you shouldn't change the name of this variable in any case.
 *        Be sure to pass the array variable and not a pointer to it because
 *        the size is calculated with sizeof().
 * odesc: A short description of the client option.  Should be used with the
 *        N_() macro.
 * ohelp: The help text for the client option.  Should be used with the N_()
 *        macro.
 * ocat:  The client_option_class of this client option.
 * ospec: A gui_type enumerator which determin for what particular client
 *        gui this option is for.  Sets to GUI_LAST for common options.
 * odef:  The default string for this client option.
 * oacc:  The string accessor where to find the allowed values of type
 *        const char **(*)(void) (returns a NULL-termined list of strings).
 * ocb:   A callback function of type void (*)(struct client_option *)
 *        called when the option changed.
 */
#define GEN_STR_LIST_OPTION(oname, odesc, ohelp, ocat, ospec, odef, oacc, ocb) \
{                                                                           \
  .name = #oname,                                                           \
  .description = odesc,                                                     \
  .help_text = ohelp,                                                       \
  .category = ocat,                                                         \
  .specific = ospec,                                                        \
  .type = COT_STRING,                                                       \
  {                                                                         \
    .string = {                                                             \
      .pvalue = oname,                                                      \
      .size = sizeof(oname),                                                \
      .def = odef,                                                          \
      .val_accessor = oacc                                                  \
    }                                                                       \
  },                                                                        \
  .changed_callback = ocb,                                                   \
}

/*
 * Generate a client option of type COT_FONT.
 *
 * oname: The option data.  Note it is used as name to be loaded or saved.
 *        So, you shouldn't change the name of this variable in any case.
 *        Be sure to pass the array variable and not a pointer to it because
 *        the size is calculated with sizeof().
 * odesc: A short description of the client option.  Should be used with the
 *        N_() macro.
 * ohelp: The help text for the client option.  Should be used with the N_()
 *        macro.
 * ocat:  The client_option_class of this client option.
 * ospec: A gui_type enumerator which determin for what particular client
 *        gui this option is for.  Sets to GUI_LAST for common options.
 * odef:  The default string for this client option.
 * ocb:   A callback function of type void (*)(struct client_option *)
 *        called when the option changed.
 */
#define GEN_FONT_OPTION(oname, odesc, ohelp, ocat, ospec, odef, ocb)        \
{                                                                           \
  .name = #oname,                                                           \
  .description = odesc,                                                     \
  .help_text = ohelp,                                                       \
  .category = ocat,                                                         \
  .specific = ospec,                                                        \
  .type = COT_FONT,                                                         \
  {                                                                         \
    .font = {                                                               \
      .pvalue = oname,                                                      \
      .size = sizeof(oname),                                                \
      .def = odef,                                                          \
    }                                                                       \
  },                                                                        \
  .changed_callback = ocb,                                                   \
}const struct client_option *const _p##_max = options + num_options;       \
  struct client_option *_p;                                                 \
  for (_p = options; _p < _p##_max; _p++) {       /* Set to TRUE after the first call to options_init(), to avoid the usage
 * of non-initialized datas when calling the changed callback. */
static bool options_fully_initialized = FALSstatic void mapview_redraw_callback(struct client_option *option);

static struct client_option options[] = {
  GEN_STR_OPTION(default_user_name,
                 N_("Login name"),
                 N_("This is the default login username that will be used "
                    "in the connection dialogs or with the -a command-line "
                    "parameter."),
                 COC_NETWORK, GUI_LAST, NULL, NULL),
  GEN_STR_OPTION(default_server_host,
                 N_("Server"),
                 N_("This is the default server hostname that will be used "
                    "in the connection dialogs or with the -a command-line "
                    "parameter."),
                                 N_("Server port"),
                 N_("This is the default server port that will be used "
                    "in the connection dialogs or with the -a command-line "
                    "parameter."),
                                 N_("Metaserver"),
                 N_("The metaserver is a host that the client contacts to "
                    "find out about games on the internet.  Don't change "
                    "this from its default value unless you know what "
                    "you're doing."),
                                  N_("Set this option to have a \"bell\" event be generated "
                     "at the start of a new turn.  You can control the "
                     "behavior of the \"bell\" event by editing the message "
                     "options."),
                  COC_SOUND, GUI_LAST, FALSE, NULL),
  GEN_INT_OPTION(smooth_move_unit_msec,
                 N_("Unit movement animation time (milliseconds)"),
                 N_("This option controls how long unit \"animation\" takes "
                    "when a unit moves on the map view.  Set it to 0 to "
                    "disable animation entirely."),
                 COC_GRAPHICS, GUI_LAST, 30, 0, 2000, NULL),
  GEN_INT_OPTION(smooth_center_slide_msec,
                 N_("Mapview recentering time (milliseconds)"),
                 N_("When the map view is recentered, it will slide "
                    "smoothly over the map to its new position.  This "
                    "option controls how long this slide lasts.  Set it to "
                    "0 to disable mapview sliding entirely."),
                                  N_("Disabling this option will turn off combat animation "
                     "between units on the mapview."),
                                  N_("Disable this option if you do not want to "
                     "press the Turn Done button manually when watching "
                     "an AI playerauto_center_on_unit, N_("Auto Center on Units"),
                  N_("Set this option to have the active unit centered "
                     "automatically when the unit focus changesauto_center_on_combat, N_("Auto Center on Combat"),
                  N_("Set this option to have any combat be centered "
                     "automatically.  Disabled this will speed up the time "
                     "between turns but may cause you to miss combat "
                     "entirely."),
                                  N_("Set this option to have newly awoken units be "
                     "focused automatically                  N_("Setting this option will make the game consider "
                     "moving into unknown tiles.  If not, then goto routes "
                     "will detour around or be blocked by unknown tilescenter_when_popup_city, N_("Center map when Popup city"),
                  N_("Setting this option makes the mapview center on a "
                     "city when its city dialog is popped upconcise_city_production, N_("Concise City Production"),
                  N_("Set this option to make the city production (as shown "
                     "in the city dialog) to be more compact."),
                  COC_INTERFACE, GUI_LAST, FALSE, NULL),
  GEN_BOOL_OPTION(auto_turn_done, N_("End Turn when done moving"),
                  N_("Setting this option makes your turn end automatically "
                     "when all your units are done moving."),
                                  N_("Disabling this option will make the names of newly "
                     "founded cities chosen automatically by the serverpopup_new_cities, N_("Pop up city dialog for new cities"),
                  N_("Setting this option will pop up a newly-founded "
                     "city's city dialog automatically                  N_("Background layer"),
                  N_("The background layer of the overview shows just "
                
****
  Returns the option corresponding to this idoption_by_number(int id)
{
  RETURN_VAL_IF_FAIL(0 <= id && id < num_options, NULL);
  return options + id;
}

****
  Returns the option corresponding to this nameoption_by_name(const char *name)
{
  client_options_iterate(poption) {
    if (0 == strcmp(option_name(poption), name)) {
      return poption;
    }
  } client_options_iterate_end;
  return NULL;
}

****
  Returns the next valid option pointer for the current gui typeatic struct client_option *option_next_valid(struct client_option *poption)
{
  static const struct client_option *const max = options + num_options;
  const enum gui_type our_type = get_gui_type();

  while (poption < max
         && poption->specific != GUI_LAST
         && poption->specific != our_type) {
    poption++;
  }

  return (poption < max ? poption : NULL);
}

****
  Returns the first valid option pointer for the current gui typeoption_first(void)
{
  return option_next_valid(options);
}

****
  Returns the next valid option pointer for the current gui typeoption_next(struct client_option *poption)
{
  return option_next_valid(poption + 1);
}

****
  Set the function to call every time this option changes.  Can be NULLvoid option_set_changed_callback(struct client_option *poption,
                                 void (*callback) (struct client_option *))
{
  RETURN_IF_FAIL(NULL != poption);

  poption->changed_callback = callback;
}

****
  Force to use the option changed callbackvoid option_changed(struct client_option *poption)
{
  RETURN_IF_FAIL(NULL != poption);

  /* Prevent to use non-initialized datas. */
  if (options_fully_initialized
      && poption && poption->changed_callback) {
    poption->changed_callback(poption);
  }
}

****
  Set the option to its default value.  Returns TRUE if the option changedbool option_reset(struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);

  switch (option_type(poption)) {
  case COT_BOOLEAN:
    return option_bool_set(poption, option_bool_def(poption));
  case COT_INTEGER:
    return option_int_set(poption, option_int_def(poption));
  case COT_STRING:
    return option_str_set(poption, option_str_def(poption));
  case COT_FONT:
    return option_font_set(poption, option_font_def(poption));
  }
  return FALSE;
}

****
  Load the option from a file.  Returns TRUE if the option changedbool option_load(struct client_option *poption, struct section_file *sf)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);
  RETURN_VAL_IF_FAIL(NULL != sf, FALSE);

  if (!section_file_lookup(sf, "client.%s", option_name(poption))) {
    return FALSE;
  }

  switch (option_type(poption)) {
  case COT_BOOLEAN:
    return option_bool_set(poption,
                           secfile_lookup_bool(sf, "client.%s",
                                               option_name(poption)));
  case COT_INTEGER:
    return option_int_set(poption,
                          secfile_lookup_int_default_min_max(real_freelog,
                              sf, option_int_def(poption),
                              option_int_min(poption),
                              option_int_max(poption),
                              "client.%s", option_name(poption)));
  case COT_STRING:
    return option_str_set(poption,
                          secfile_lookup_str(sf, "client.%s",
                                             option_name(poption)));
  case COT_FONT:
    return option_font_set(poption,
                           secfile_lookup_str(sf, "client.%s",
                                              option_name(poption)));
  }
  return FALSE;
}

****
  Returns the number of this optionint option_number(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, -1);

  return poption - options;
}

****
  Returns the name of this optionconst char *option_name(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);

  return poption->name;
}

****
  Returns the description (translated) of this optionconst char *option_description(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);

  return _(poption->description);
}

****
  Returns the help text (translated) for this optionconst char *option_help_text(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);

  return _(poption->help_text);
}

****
  Returns the type of this optionenum client_option_type option_type(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, -1);

  return poption->type;
}

****
  Returns the class of this optionenum client_option_class option_class(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, COC_MAX);

  return poption->category;
}

****
  Returns the name (translated) of the option clasconst char *option_class_name(enum client_option_class option_class)
{
  switch (option_class) {
  case COC_GRAPHICS:
    return _("Graphics");
  case COC_OVERVIEW:
    return _("Overview");
  case COC_SOUND:
    return _("Sound");
  case COC_INTERFACE:
    return _("Interface");
  case COC_NETWORK:
    return _("Network");
  case COC_FONT:
    return _("Font");
  case COC_MAX:
    break;
  }

  freelog(LOG_ERROR, "option_class_name(): invalid option class number %d.",
          option_class);
  return NULL;
}

****
  Set the gui data for this optionvoid option_set_gui_data(struct client_option *poption, void *data)
{
  RETURN_IF_FAIL(NULL != poption);

  poption->gui_data = data;
}

****
  Returns the gui data of this optionvoid *option_get_gui_data(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);

  return poption->gui_data;
}

****
  Returns the value of this option of type COT_BOOLEANbool option_bool_get(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);
  RETURN_VAL_IF_FAIL(COT_BOOLEAN == poption->type, FALSE);

  return *poption->boolean.pvalue;
}

****
  Returns the default value of this option of type COT_BOOLEANbool option_bool_def(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);
  RETURN_VAL_IF_FAIL(COT_BOOLEAN == poption->type, FALSE);

  return poption->boolean.def;
}

****
  Set the value of this option of type COT_BOOLEAN.  Returns TRUE if the
  value changedbool option_bool_set(struct client_option *poption, bool val)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);
  RETURN_VAL_IF_FAIL(COT_BOOLEAN == poption->type, FALSE);

  if (*poption->boolean.pvalue == val) {
    return FALSE;
  }

  *poption->boolean.pvalue = val;
  option_changed(poption);
  return TRUE;
}

****
  Returns the value of this option of type COT_INTEGERint option_int_get(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, 0);
  RETURN_VAL_IF_FAIL(COT_INTEGER == poption->type, 0);

  return *poption->integer.pvalue;
}

****
  Returns the default value of this option of type COT_INTEGERint option_int_def(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, 0);
  RETURN_VAL_IF_FAIL(COT_INTEGER == poption->type, 0);

  return poption->integer.def;
}

****
  Returns the minimal value for this option of type COT_INTEGERint option_int_min(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, 0);
  RETURN_VAL_IF_FAIL(COT_INTEGER == poption->type, 0);

  return poption->integer.min;
}

****
  Returns the maximal value for this option of type COT_INTEGERint option_int_max(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, 0);
  RETURN_VAL_IF_FAIL(COT_INTEGER == poption->type, 0);

  return poption->integer.max;
}

****
  Set the value of this option of type COT_INTEGER.  Returns TRUE if the
  value changedbool option_int_set(struct client_option *poption, int val)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);
  RETURN_VAL_IF_FAIL(COT_INTEGER == poption->type, FALSE);

  if (val < poption->integer.min
      || val > poption->integer.max
      || *poption->integer.pvalue == val) {
    return FALSE;
  }

  *poption->integer.pvalue = val;
  option_changed(poption);
  return TRUE;
}

****
  Returns the value of this option of type COT_STRINGconst char *option_str_get(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);
  RETURN_VAL_IF_FAIL(COT_STRING == poption->type, NULL);

  return poption->string.pvalue;
}

****
  Returns the default value of this option of type COT_STRINGconst char *option_str_def(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);
  RETURN_VAL_IF_FAIL(COT_STRING == poption->type, NULL);

  return poption->string.def;
}

****
  Returns the possible string values of this optionconst struct strvec *option_str_values(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);
  RETURN_VAL_IF_FAIL(COT_STRING == poption->type, NULL);

  return (poption->string.val_accessor
          ? poption->string.val_accessor() : NULL);
}

****
  Set the value of this option of type COT_STRING.  Returns TRUE if the
  value changedbool option_str_set(struct client_option *poption, const char *str)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);
  RETURN_VAL_IF_FAIL(COT_STRING == poption->type, FALSE);
  RETURN_VAL_IF_FAIL(NULL != str, FALSE);

  if (strlen(str) >= poption->string.size
      || 0 == strcmp(poption->string.pvalue, str)) {
    return FALSE;
  }

  mystrlcpy(poption->string.pvalue, str, poption->string.size);
  option_changed(poption);
  return TRUE;
}

****
  Returns the value of this option of type COT_FONTconst char *option_font_get(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);
  RETURN_VAL_IF_FAIL(COT_FONT == poption->type, NULL);

  return poption->font.pvalue;
}

****
  Returns the default value of this option of type COT_FONTconst char *option_font_def(const struct client_option *poption)
{
  RETURN_VAL_IF_FAIL(NULL != poption, NULL);
  RETURN_VAL_IF_FAIL(COT_FONT == poption->type, NULL);

  return poption->font.def;
}

****
  Set the value of this option of type COT_FONT.  Returns TRUE if the
  value changedbool option_font_set(struct client_option *poption, const char *str)
{
  RETURN_VAL_IF_FAIL(NULL != poption, FALSE);
  RETURN_VAL_IF_FAIL(COT_FONT == poption->type, FALSE);
  RETURN_VAL_IF_FAIL(NULL != str, FALSE);

  if (strlen(str) >= poption->font.size
      || 0 == strcmp(poption->font.pvalue, str)) {
    return FALSE;
  }

  mystrlcpy(poption->font.pvalue, str, poption->font.size);
  option_changed(poption);
  return TRUE;
}static static **********
  Load the servervoid options_load_settableoptions_loadpoption) {
    option_load(poption, &sf);  options_fully_initialized = TRUE;
}


options_load_ruleset_specific**********
  Save allvoid options_savepoption) {
    switch (option_type(poption)) {
    case COT_BOOLEAN:
      secfile_insert_bool(&sf, option_bool_get(poption),
                          "client.%s", option_name(poption));
      break;
    case COT_INTEGER:
      secfile_insert_int(&sf, option_int_get(poption),
                         "client.%s", option_name(poption));
      break;
    case COT_STRING:
      secfile_insert_str(&sf, option_str_get(poption),
                         "client.%s", option_name(poption));
      break;
    case COT_FONT:
      secfile_insert_str(&sf, option_font_get(poption),
                         "client.%s", option_name(poption)
****
  Initialize the option modulevoid options_init(void)
{
  message_options_init();
  gui_options_extra_init();

  client_options_iterate_all(poption) {
    switch (option_type(poption)) {
    case COT_BOOLEAN:
      break;

    case COT_INTEGER:
      if (option_int_def(poption) < option_int_min(poption)
          || option_int_def(poption) > option_int_max(poption)) {
        int new_default = MAX(MIN(option_int_def(poption),
                                  option_int_max(poption)),
                              option_int_min(poption));

        freelog(LOG_ERROR, "option %s has default value of %d, which is "
                "out of its range [%d; %d], changing to %d.",
                option_name(poption), option_int_def(poption),
                option_int_min(poption), option_int_max(poption),
                new_default);
        *((int *) &poption->integer.def) = new_default;
      }
      break;

    case COT_STRING:
      if (default_user_name == option_str_get(poption)) {
        /* Hack to get a default value. */
        *((const char **) &poption->string.def) =
            mystrdup(default_user_name);
      }

      if (NULL == option_str_def(poption)) {
        const struct strvec *values = option_str_values(poption);

        if (NULL == values || strvec_size(values) == 0) {
          freelog(LOG_ERROR, "Invalid NULL default string for option %s.",
                  option_name(poption));
        } else {
          *((const char **) &poption->string.def) = strvec_get(values, 0);
        }
      }
      break;

    case COT_FONT:
      break;
    }

    /* Set to default. */
    option_reset(poption);
  } client_options_iterate_all_end;
}

****
  Free the option modulevoid options_free(void)
{
  message_options_free();
}


static ENDREP
DELTA 16115 144 647
SVN  „˜t„˜b-„; „‚? €D „@„‚y‡ p„‡;˜ Q‚ÿ  e„Š€ƒX Sø@ ˆ/„Epoption)
{
  popdown_meswin_dialog();
  if (option_bool_get(poption)poptionoption_bool_get(poption)#define option_by_var(var) option_by_name(#var)
  struct client_option *poption;

  if ((poption = option_by_var(gui_gtk2_allied_chat_only))) {
    option_set_changed_callback(poption, allied_chat_only_callback);
  }

  if ((poption = option_by_var(gui_gtk2_split_bottom_notebook))) {
    option_set_changed_callback(poption, split_bottom_notebook_callback);
  }

  client_options_iterate(poption) {
    gui_update_font_from_option(poption);
  } client_options_iterate_endENDREP
DELTA 10945 6950 2783
SVN  ¬£:ŽQ †* €C G  ˆu‡`€ƒz G ¿ I¨ €„ G €
 I¨ ‰ ‚©h¬ G €F I¨ €Q/* utility */
#include "log.h"
#include "mem.h"
#include "shared.h"
#include "string_vector.h"
#include "support.h"

/* include */
#include "themes_g.h"

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

int i;
    
  /* get GUI-specific theme directories */
  char **gui_directories =
      get_gui_specific_themes_directories(&num_directories);
  
  directories = 
      fc_malloc(sizeof(struct theme_directory) * num_directories);
          
  for (i = 0; i < num_directories; i++) {
    directories[i].path = gui_directories[i];
    
    /* get useable themes in this directory */
    directories[i].themes =
	get_useable_themes_in_directory(directories[i].path,
					&(directories[i].num_themes));
  }
}

******
  Return a static string vector of useable theme names.
***/
const struct strvec *get_themes_list(void)
{
  static struct strvec *themes_list = NULL;

  if (NULL == themes_list) {
    int i, j, k;

    themes_list = strvec_new();
    for (i = 0; i < num_directories; i++) {
      for (j = 0; j < directories[i].num_themes; j++) {
        for (k = 0; k < strvec_size(themes_list); k++) {
          if (strcmp(strvec_get(themes_list, k),
                     directories[i].themes[j]) == 0) {
            break;
          }
        }
        if (k == strvec_size(themes_list)) {
          strvec_append(themes_list, directories[i].themes[j]);
        }
      }
    }
  }

  return themes_list;
}

******
  Loads a theme with the given name. First matching directory will be used.
  If there's no such theme the function returns FALSE.
***/
bool TRUE;
      }
    }
  }
  return FALSE;
}

******
  Wrapper for load_theme. It's is used by local options dialog
***/
void theme_reread_callback(struct client_option *poption)
{
  const char *theme_name = option_str_get(poption);

  RETURN_IF_FAIL(NULL != theme_name && theme_name[0] != '\0');
  load_theme(theme_name);
}
ENDREP
DELTA 16059 274 92
SVN  ‚€m‚‚ƒ: íg €ƒ: UÆ} !ðLpoption) {
  if (option_type(poption) == COT_FONT) {
    char str[512];

    my_snprintf(str, sizeof(str),
                "style \"ext-%s\" {\n"
                "  font_name = \"%s\"\n"
                "}\n"
                "\n"
                "widget \"Freeciv*.%s\" style \"ext-%s\"",
                option_name(poption), option_font_get(poption),
                option_name(poption), option_name(poption));

    gtk_rc_parse_string(strENDREP
DELTA 16059 396 3117
SVN  Œi½"–2 ¢; ²  ‚
€l C¹ €“x ‚R‡=œstruct client_option;           /* Opaque type. */struct client_option *_p = option_first();                                \
  for (; _p; _p = option_next(_p)) {                                        \

#define client_options_iterate_end                                          \
  }      \
}

/* Main functions. */
void options_init(void);
void options_free(void);
void options_load(void);
void options_load_ruleset_specific(void);
void options_load_settable(bool send_it);
void options_save(void);


/* Option function accessors. */
struct client_option *option_by_number(int id);
struct client_option *option_by_name(const char *name);
struct client_option *option_first(void);
struct client_option *option_next(struct client_option *poption);

void option_set_changed_callback(struct client_option *poption,
                                 void (*callback) (struct client_option *));
void option_changed(struct client_option *poption);
bool option_reset(struct client_option *poption);
struct section_file;
bool option_load(struct client_option *poption, struct section_file *sf);

int option_number(const struct client_option *poption);
const char *option_name(const struct client_option *poption);
const char *option_description(const struct client_option *poption);
const char *option_help_text(const struct client_option *poption);
enum client_option_type option_type(const struct client_option *poption);
enum client_option_class option_class(const struct client_option *poption);
const char *option_class_name(enum client_option_class option_class);

/* Option gui functions. */
void option_set_gui_data(struct client_option *poption, void *data);
void *option_get_gui_data(const struct client_option *poption);

/* Option type COT_BOOLEAN functions. */
bool option_bool_get(const struct client_option *poption);
bool option_bool_def(const struct client_option *poption);
bool option_bool_set(struct client_option *poption, bool val);

/* Option type COT_INTEGER functions. */
int option_int_get(const struct client_option *poption);
int option_int_def(const struct client_option *poption);
int option_int_min(const struct client_option *poption);
int option_int_max(const struct client_option *poption);
bool option_int_set(struct client_option *poption, int val);

/* Option type COT_STRING functions. */
const char *option_str_get(const struct client_option *poption);
const char *option_str_def(const struct client_option *poption);
const struct strvec *option_str_values(const struct client_option *poption);
bool option_str_set(struct client_option *poption, const char *str);

/* Option type COT_FONT functions. */
const char *option_font_get(const struct client_option *poption);
const char *option_font_def(const struct client_option *poption);
bool option_font_set(struct client_option *poption, const char *str);
#endif  /* FC__OPTIONS_H */
ENDREP
DELTA 13666 670 2142
SVN  àcâ=3‡! †)  †(² ƒL‡6Ž K‹€‚O Q“<¡ [Q€‚P ¬B“&€ ŸjÀy/* utility */tring_vector.h"
#include "support.h"

/* client */ string vectorstruct strvec *get_soundplugin_list(void)
{
  static struct strvec *plugin_list = NULL;

  if (NULL == plugin_list) {
    int i;

    plugin_list = strvec_new();
    strvec_reserve(plugin_list, num_plugins_used);
    for (i = 0; i < num_plugins_used; i++) {
      strvec_set(plugin_list, i, plugins[i].name);
    }
  }

  return plugin
  Returns a static string vectorstruct strvec *get_soundset_list(void)
{
  static struct strvec *audio_list = NULL;

  if (NULL == audio_list) {
    char **list, **file;

    audio_list = strvec_new();
    list = datafilelist(SNDSPEC_SUFFIX);
    for (file = list; NULL != *file; file++) {
      strvec_append(audio_list, *file);
      free(*file);
    }
    free(list _("No real audio subsystem managed to initialize!"));
  freelog(LOG_NORMAL,
          _("Perhaps there is some misconfiguration or bad permissions.ENDREP
DELTA 13227 8092 123
SVN  ‡‡Lu …] €S z†¢
#include "options.h"

void init_themes(void);
struct strvec;
const struct strvec *
#endif /* FC__THEMES_COMMON_H */
ENDREP
DELTA 10416 2052 115
SVN  ŽŽ,T ‰ €T „@‰Mstruct strvec;
const struct strvec *get_soundplugin_list(void);
const struct strvec ENDREP
DELTA 16124 0 60470
SVN  „ë„ë g Œ U‚© ‡ `Ñ{ „ËVŸ/options_saveLOAD_TIENDREP
DELTA 15832 304 16280
SVN  †  †  š Š: Œ ‚Š+ 3Œ>µ rb ~€w „C¡ @…@€N ¦m€‚X L‰? É&¬+€$ P‰? ò`÷€ƒ[ [ƒêj¼ ƒí7¡ Oß €ˆ1 U‰? ‚~ƒî, ƒƒñD€„K U‰? ‚gƒý€8 Œy„€)Š ‚ˆ„!tring_vector/* include */itydlg_common.h"	/* for generate_citydlg_dimensions()tyle_threshold {
  int city_size;
  struct sprite *sprite;
};

struct city_sprite {
  struct {
    int land_num_thresholds;
    struct city_style_threshold *land_thresholds;
    int oceanic_num_thresholds;
    struct city_style_threshold *oceanic_*******/
const struct strvec *get_tileset_list(void)
{
  static struct strvec , **file;

    tilesets = strvec_new();
    list = datafilelist(TILESPEC_SUFFIX);
    for (file = list; NULL != *file; file++) {
      struct tileset *t = tileset_read_toplevel(*file, FALSE);

      if (t) {
        strvec_append(tilesets, *file);
        tileset_free(t);
      }
      free(*file);
    }
    free(list);
  }

  return tilesetspoption)
{
  const char *tileset_name = option_str_get(poption);

  RETURN_IF_FAIL(NULL != tileset_name && tileset_name[0] != '\0');
  tilespec_reread(tileset_name)struct city_style_threshold *thresholds;
  int t;

  assert(style < city_sprite->num_styles);

  if (is_ocean_tile(pcity->tile)
      && city_sprite->styles[style].oceanic_num_thresholds != 0) {
    num_thresholds = city_sprite->styles[style].oceanic_num_thresholds;
    thresholds = city_sprite->styles[style].oceanic_thresholds;
  } else {
    num_thresholds = city_sprite->styles[style].land_num_thresholds;
    thresholds = city_sprite->styles[style].land_thresholds;
  }thresholds[t].city_size) {
      break;
    }
  }

  return one threshold set for city spritestatic int load_city_thresholds_sprites(struct tileset *t, const char *tag,
                                        char *graphic, char *graphic_alt,
                                        struct city_style_threshold **thresholds)
{
  char buffer[128];
  char *gfx_in_use = graphic;
  int num_thresholds = 0;
  struct sprite *sprite;
  int size;

  *thresholds = NULL;

  for (size = 0; size < MAX_CITY_SIZE; size++) {
    my_snprintf(buffer, sizeof(buffer), "%s_%s_%d",
                gfx_in_use, tag, size);
    if ((sprite = load_sprite(t, buffer))) {
      num_thresholds++;
      *thresholds = fc_realloc(*thresholds, num_thresholds * sizeof(**thresholds));
      (*thresholds)[num_thresholds - 1].city_size = size;
      (*thresholds)[num_thresholds - 1].sprite = sprite;
    } else if (size == 0) {
      if (gfx_in_use == graphic) {
        /* Try again with graphic_alt. */
        size--;
        gfx_in_use = graphic_alt;
      } else {
        /* Don't load any others if the 0 element isn't there. */
        break;
      }
    }
  }

  return num_thresholdscity_sprite->styles[style].land_num_thresholds =
      load_city_thresholds_sprites(t, tag, city_styles[style].graphic,
                                   city_styles[style].graphic_alt,
                                   &city_sprite->styles[style].land_thresholds);
    city_sprite->styles[style].oceanic_num_thresholds =
      load_city_thresholds_sprites(t, tag, city_styles[style].oceanic_graphic,
                                   city_styles[style].oceanic_graphic_alt,
                                   &city_sprite->styles[style].oceanic_thresholds);
  }

  return city_spriteland_thresholds) {
      free(city_sprite->styles[style].land_thresholds);
    }
    if (city_sprite->styles[style].oceanic_thresholds) {
      free(city_sprite->styles[style].oceanic_, "exhaust†  „>„ŒS‰q€ƒC Q‚Ü ¨ FÙ@— [Ò3€„N ‚Í  … >‚Í … B‚Í   ‚Ï … B‚Í  Ä‚ÐB³ ƒ•« P‚Ü ´ aƒŸ  é(ƒ˜ain(tile1);

      if (NULL != terrain1) {
        tterrain_near[dir] = terrain1;
        tspecial_near[dir] = tile_specials(tile1);
        continue;
      }
      freelog(LOG_ERROR, "build_tile_data() tile (%d,%d) has no terrain!",
              TILE_XY(tile1));
    }
    /* At the edges of the (known) map, pretend the same terrain continued
     * past the edge of the map. */
    tterrain_near[dir] = pterrain;
    BV_CLR_ALL(tspecial_near[dir])  Fill in the sprite array for the unit
*/
static int fill_unitunit *punit,
				  bool stack, bool backdrop)
{
  struct drawn_sprite *save_sprs = sprs;
  int ihp;

  if (backdrop) {
    if (!solid_color_behind_units) {
      ADD_SPRITE(get_unit_nation_flag_sprite(t, punit), TRUE,
		 FULL_TILE_X_OFFSET + t->unit_flag_offset_x,
		 FULL_TILE_Y_OFFSET + t->unit_flag_offset_y);
    } else {
      /* Taken care of in the LAYER_BACKGROUND. */
    }
  }

  ADD_SPRITE(t->sprites.unittype[utype_index(unit_type(punit))], TRUE,
	     FULL_TILE_X_OFFSET + t->unit_offset_x,
	     FULL_TILE_Y_OFFSET + t->unit_offset_y);

  if (t->sprites.unit.loaded && punit->land_land_land_
    t->sprites.city.tile->styles[city_style].land_land_thresholds[num_thresholds - 1].sprite)****
  Return a sprite with an "arrow" theme graphicENDREP
DELTA 15354 1526 1632
SVN  ÒÓ8c šQ £ —2š]‡ ‚²„ šl³}µ ƒ^Î;struct strvec;
const struct strvec EXHAUSTcopyunit_width(const struct tileset *t);
int tileset_unitENDREP
DELTA 16071 179 2599
SVN  Å9ÅB
 š ˆ «3š(size_t)ENDREP
DELTA 16021 10012 915
SVN  ùù Â< ™ G  µyÃoptions_save();
  }
}  

ENDREP
id: 4hy.5ck.r16165/59614
type: file
pred: 4hy.5ck.r16071/3882
count: 1
text: 16165 59479 29 8898 128ac5776caa6057fd2e7a2c7e38666a
cpath: /trunk/utility/string_vector.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 2gg.5ck.r16071/4213
K 9
astring.c
V 21
file h5.0.r10751/2787
K 9
astring.h
V 21
file h6.0.r11697/3977
K 12
capability.c
V 21
file 7p.0.r7748/30787
K 12
capability.h
V 21
file 7q.0.r4176/34610
K 12
distribute.c
V 20
file 2lp.0.r9954/295
K 12
distribute.h
V 21
file 2lq.0.r8056/3668
K 9
fciconv.c
V 24
file 2g7.5ck.r15619/8096
K 9
fciconv.h
V 22
file 2g8.0.r11697/4426
K 8
fcintl.c
V 19
file k3.0.r7638/236
K 8
fcintl.h
V 22
file fw.5bk.r14576/680
K 4
ftwl
V 23
dir 2jb.5ck.r16131/2509
K 9
genlist.c
V 24
file 51.5ck.r16015/38781
K 9
genlist.h
V 24
file 52.5ck.r16015/39268
K 6
hash.c
V 22
file qe.5ck.r15905/257
K 6
hash.h
V 23
file qf.5ck.r15892/4889
K 11
inputfile.c
V 26
file h9.5bk.r14370/4373062
K 11
inputfile.h
V 20
file ha.0.r5776/8582
K 5
ioz.c
V 23
file uh.5ck.r15619/6897
K 5
ioz.h
V 21
file ui.0.r12506/5414
K 10
iterator.c
V 24
file 4h5.5ck.r15904/1850
K 10
iterator.h
V 24
file 4f3.5ck.r15904/1425
K 5
log.c
V 22
file 53.5bk.r14799/327
K 5
log.h
V 23
file 54.5ck.r16069/1644
K 5
md5.c
V 23
file 33q.5ck.r15332/395
K 5
md5.h
V 23
file 33r.5ck.r15332/631
K 5
mem.c
V 20
file d9.0.r11300/309
K 5
mem.h
V 20
file da.0.r11444/196
K 9
netintf.c
V 23
file t6.5ck.r15626/6923
K 9
netintf.h
V 23
file t7.5ck.r15626/7163
K 8
pqueue.c
V 21
file 2cu.0.r7010/7969
K 8
pqueue.h
V 21
file 2cv.0.r5979/6616
K 6
rand.c
V 23
file m5.5bk.r14406/1449
K 6
rand.h
V 23
file m6.5bk.r14406/1701
K 10
registry.c
V 24
file dh.5ck.r16015/39026
K 10
registry.h
V 24
file di.5ck.r15943/27555
K 9
sbuffer.c
V 21
file dm.0.r5615/14501
K 9
sbuffer.h
V 21
file dn.0.r5615/14850
K 8
shared.c
V 24
file 55.5ck.r16015/39756
K 8
shared.h
V 22
file 1d.5ck.r15800/851
K 10
speclist.h
V 24
file gb.5ck.r16015/39511
K 9
specvec.h
V 19
file z9.0.r11261/46
K 15
string_vector.c
V 25
file 4hy.5ck.r16165/59614
K 15
string_vector.h
V 24
file 4hz.5ck.r16071/4047
K 9
support.c
V 23
file m9.5ck.r15619/7376
K 9
support.h
V 23
file ma.5ck.r15619/7615
K 8
timing.c
V 22
file el.5ck.r15391/620
K 8
timing.h
V 20
file em.0.r4423/4450
END
ENDREP
id: 1c.5ck.r16165/61846
type: dir
pred: 1c.5ck.r16131/4785
count: 598
text: 16165 59806 2027 2027 f43a3bbb15caa63ad73854419288dba6
props: 11108 3477 69 0 09e82dc36e85984f70ccefc82bea8069
cpath: /trunk/utility
copyroot: 15280 /trunk

id: i4.5ck.r16165/62079
type: file
pred: i4.5ck.r16059/27754
count: 75
text: 16165 50091 2907 7842 0d026455cda9694cb79d175ab11b9ee6
props: 11044 512 111 0 e5ad8d36ef6bfd356bb06d6f3ece066f
cpath: /trunk/client/options.h
copyroot: 15280 /trunk

id: 118.5ck.r16165/62322
type: file
pred: 118.5ck.r15813/67030
count: 129
text: 16165 8395 37 52943 764cefa15df3763e95a75f78623a48eb
props: 11057 38502 111 0 89e24921275908e1dbda216a065c4859
cpath: /trunk/client/gui-gtk-2.0/repodlgs.c
copyroot: 15280 /trunk

id: 10k.5ck.r16165/62581
type: file
pred: 10k.5ck.r16115/821
count: 231
text: 16165 46962 630 68706 772b4c38ba0f662105d80b56159cfd26
props: 11057 38870 112 0 ec3aa248409009be6c82cab2c7e95ef5
cpath: /trunk/client/gui-gtk-2.0/gui_main.c
copyroot: 15280 /trunk

id: 10m.5ck.r16165/62840
type: file
pred: 10m.5ck.r16059/28514
count: 35
text: 16165 49591 474 33047 0a545a305a32d86037d5a4f04399c205
props: 10967 1745 111 0 05a46e497021c8716b647ee1425e21a2
cpath: /trunk/client/gui-gtk-2.0/gui_stuff.c
copyroot: 15280 /trunk

id: 10z.5ck.r16165/63100
type: file
pred: 10z.5ck.r16124/60501
count: 137
text: 16165 54347 53 79237 c31d78c3e0ffd99c9379e042d2f364a1
props: 11057 39977 111 0 05d0c9433d86d9823b0e8b2536eb2299
cpath: /trunk/client/gui-gtk-2.0/menu.c
copyroot: 15280 /trunk

id: 10d.5ck.r16165/63356
type: file
pred: 10d.5ck.r16059/30053
count: 40
text: 16165 9711 5777 18642 da1ed5cd23804e234660b4793fede9b9
props: 11057 41811 111 0 b4233197920770c602c29330b7f7c623
cpath: /trunk/client/gui-gtk-2.0/gamedlgs.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file zu.5ck.r16063/47565
K 8
canvas.c
V 24
file 2y6.5bk.r15074/8344
K 8
canvas.h
V 23
file 2y7.0.r10096/14437
K 16
caravan_dialog.c
V 26
file 376.5ck.r15410/339645
K 10
chatline.c
V 24
file zw.5ck.r16063/47052
K 10
chatline.h
V 24
file zx.5ck.r16063/47311
K 15
choice_dialog.c
V 23
file 377.0.r13481/22903
K 15
choice_dialog.h
V 23
file 378.0.r12670/99360
K 9
citydlg.c
V 24
file zy.5ck.r15881/15949
K 9
citydlg.h
V 20
file zz.0.r5493/6351
K 9
cityrep.c
V 24
file 100.5ck.r16061/8407
K 9
cityrep.h
V 22
file 101.0.r9098/11480
K 8
cma_fe.c
V 25
file 102.5ck.r16015/47853
K 8
cma_fe.h
V 25
file 103.5ck.r15813/67548
K 8
colors.c
V 22
file 104.0.r10458/4290
K 8
colors.h
V 22
file 105.0.r10458/4652
K 12
connectdlg.c
V 26
file 106.5ck.r15410/343701
K 12
connectdlg.h
V 21
file 107.0.r7580/6878
K 9
dialogs.c
V 25
file 108.5ck.r15990/56039
K 9
dialogs.h
V 22
file 109.0.r11212/7101
K 10
diplodlg.c
V 25
file 10a.5ck.r16121/15575
K 10
diplodlg.h
V 23
file 10b.0.r9577/108261
K 17
diplomat_dialog.c
V 26
file 36n.5ck.r15410/341404
K 9
editgui.c
V 24
file 4ej.5ck.r15761/8370
K 9
editgui.h
V 25
file 4ek.5ck.r15355/70937
K 10
editprop.c
V 25
file 4el.5ck.r15741/36532
K 10
editprop.h
V 24
file 3bj.5cl.r15704/4438
K 10
embedggz.c
V 25
file 4gq.5ck.r15814/16205
K 9
finddlg.c
V 25
file 10c.5ck.r16015/48885
K 9
finddlg.h
V 22
file 2d0.0.r5989/22356
K 10
gamedlgs.c
V 25
file 10d.5ck.r16165/63356
K 9
gotodlg.c
V 25
file 10e.5ck.r16015/47337
K 9
gotodlg.h
V 23
file 10f.0.r4313/263426
K 10
graphics.c
V 23
file 10g.0.r11337/79662
K 10
graphics.h
V 23
file 10h.0.r11337/80150
K 12
gtkpixcomm.c
V 22
file 10i.0.r10800/1239
K 12
gtkpixcomm.h
V 22
file 10j.0.r10800/1606
K 10
gui_main.c
V 25
file 10k.5ck.r16165/62581
K 10
gui_main.h
V 25
file 10l.5ck.r16059/28771
K 11
gui_stuff.c
V 25
file 10m.5ck.r16165/62840
K 11
gui_stuff.h
V 25
file 10n.5ck.r15694/27656
K 11
happiness.c
V 25
file 10o.5ck.r16015/47595
K 11
happiness.h
V 23
file 10p.0.r9577/106064
K 9
helpdlg.c
V 26
file 10q.5ck.r15410/342452
K 9
helpdlg.h
V 23
file 10r.0.r4313/267882
K 10
inputdlg.c
V 25
file 10s.5ck.r16015/49143
K 10
inputdlg.h
V 21
file 10t.0.r7580/3991
K 10
inteldlg.c
V 25
file 10u.5ck.r16015/48627
K 10
inteldlg.h
V 23
file 2d1.0.r9577/108626
K 9
mapctrl.c
V 22
file 10v.5ck.r16089/58
K 9
mapctrl.h
V 25
file 10w.5bk.r14157/11089
K 9
mapview.c
V 25
file 10x.5ck.r16059/27995
K 9
mapview.h
V 23
file 10y.0.r12881/17128
K 6
menu.c
V 25
file 10z.5ck.r16165/63100
K 6
menu.h
V 25
file 110.5ck.r16067/65085
K 12
messagedlg.c
V 23
file 111.0.r11771/10924
K 12
messagedlg.h
V 22
file 2d2.0.r5989/22693
K 12
messagewin.c
V 25
file 112.5ck.r16059/29283
K 12
messagewin.h
V 23
file 113.0.r10108/19424
K 11
optiondlg.h
V 23
file 114.0.r4313/264106
K 7
pages.c
V 24
file 2pi.5ck.r16154/1300
K 7
pages.h
V 25
file 2pj.5ck.r15698/29128
K 8
plrdlg.c
V 24
file 115.5ck.r15567/7940
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 25
file 118.5ck.r16165/62322
K 10
repodlgs.h
V 21
file 119.0.r9098/9312
K 11
resources.c
V 23
file 11a.0.r5390/112550
K 11
resources.h
V 23
file 11b.0.r4313/267539
K 14
spaceshipdlg.c
V 25
file 11c.5ck.r16015/49648
K 14
spaceshipdlg.h
V 23
file 11d.0.r9577/110090
K 8
sprite.c
V 27
file 2y8.5bk.r14377/2286871
K 8
sprite.h
V 23
file 2y9.0.r10141/29270
K 11
theme_dlg.c
V 25
file 47d.5bk.r13968/60105
K 8
themes.c
V 23
file 34x.0.r13227/13852
K 13
tileset_dlg.c
V 25
file 45i.5bk.r13968/60424
K 14
voteinfo_bar.c
V 25
file 4h8.5ck.r16063/46697
K 14
voteinfo_bar.h
V 25
file 4h9.5ck.r16063/46876
K 7
wldlg.c
V 25
file 11e.5ck.r16059/29797
K 7
wldlg.h
V 21
file 11f.0.r7682/2202
END
ENDREP
id: zs.5ck.r16165/67307
type: dir
pred: zs.5ck.r16154/5241
count: 1217
text: 16165 63616 3678 3678 199c9991915d2b2963621a8660e26ec4
props: 11108 11912 79 0 480bb3268560e84c2d6c8376c422c65e
cpath: /trunk/client/gui-gtk-2.0
copyroot: 15280 /trunk

id: 11i.5ck.r16165/67553
type: file
pred: 11i.5ck.r15725/36369
count: 50
text: 16165 15519 288 13089 b19a69cd112dbb7ddb616acb425dbb48
props: 11057 45776 111 0 9b377c828b4ca1827963af8e19878787
cpath: /trunk/client/repodlgs_common.c
copyroot: 15280 /trunk

id: ar.5ck.r16165/67808
type: file
pred: ar.5ck.r16023/48609
count: 29
text: 16165 0 2682 10907 5fc2d9762e61e49b2a378e45155a44ff
props: 10897 2598 111 0 7c94b769c2c0998a2747d858cb1e860f
cpath: /trunk/client/gui-xaw/optiondlg.c
copyroot: 15280 /trunk

id: an.5ck.r16165/68059
type: file
pred: an.5ck.r16015/54996
count: 105
text: 16165 8462 37 38754 489a5a4909748d4c44408059e84d3006
props: 10882 2348 111 0 014f4f31d8fa52a1c17e04bfb7ac7579
cpath: /trunk/client/gui-xaw/menu.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file bq.5ck.r16063/52349
K 9
actions.c
V 24
file nt.5ck.r16015/54239
K 9
actions.h
V 21
file nu.0.r1888/21779
K 4
ad2c
V 22
file 9q.0.r1186/243967
K 8
canvas.c
V 21
file 9r.0.r3959/87925
K 8
canvas.h
V 20
file 9s.0.r4034/9073
K 9
canvasp.h
V 20
file 9t.0.r4034/8365
K 10
chatline.c
V 24
file 9u.5ck.r15990/61404
K 10
chatline.h
V 21
file 9v.0.r2187/10435
K 9
citydlg.c
V 24
file 9w.5ck.r16015/53742
K 9
citydlg.h
V 20
file 9x.0.r2187/8309
K 9
cityrep.c
V 25
file 9y.5ck.r15410/350824
K 9
cityrep.h
V 20
file g1.0.r5489/4916
K 8
cma_fe.c
V 25
file 2ei.5ck.r15813/72072
K 8
cma_fe.h
V 21
file 2ej.0.r6908/4433
K 8
colors.c
V 21
file a2.0.r10532/8601
K 8
colors.h
V 21
file a3.0.r10532/9312
K 12
connectdlg.c
V 24
file a4.5ck.r15990/61654
K 12
connectdlg.h
V 21
file a5.0.r2187/12228
K 9
dialogs.c
V 24
file a6.5ck.r15990/60645
K 9
dialogs.h
V 21
file a7.0.r10882/3191
K 10
diplodlg.c
V 24
file a8.5ck.r16015/55245
K 10
diplodlg.h
V 20
file a9.0.r2187/7955
K 17
diplomat_dialog.c
V 26
file 37p.5ck.r15410/351331
K 9
finddlg.c
V 24
file aa.5ck.r16015/55751
K 9
finddlg.h
V 22
file 2dk.0.r5989/31562
K 9
gotodlg.c
V 24
file ab.5ck.r16015/53991
K 9
gotodlg.h
V 21
file ac.0.r1888/21069
K 10
graphics.c
V 25
file ad.5ck.r15410/351851
K 10
graphics.h
V 21
file ae.0.r10789/6338
K 10
gui_main.c
V 24
file bm.5ck.r16059/34149
K 10
gui_main.h
V 22
file bn.0.r11408/10219
K 11
gui_stuff.c
V 22
file bo.0.r6129/126486
K 11
gui_stuff.h
V 21
file bp.0.r4964/56392
K 9
helpdlg.c
V 25
file af.5ck.r15410/352870
K 9
helpdlg.h
V 21
file g2.0.r1888/23188
K 10
inputdlg.c
V 20
file ag.0.r7586/1961
K 10
inputdlg.h
V 20
file ah.0.r7586/2315
K 10
inteldlg.c
V 24
file ai.5ck.r16015/55498
K 10
inteldlg.h
V 23
file 2dl.0.r10108/22972
K 9
mapctrl.c
V 25
file aj.5ck.r15410/352106
K 9
mapctrl.h
V 21
file ak.0.r10532/9667
K 9
mapview.c
V 25
file al.5ck.r15410/349301
K 9
mapview.h
V 24
file am.5bk.r13912/46304
K 6
menu.c
V 24
file an.5ck.r16165/68059
K 6
menu.h
V 21
file ao.0.r12091/4447
K 12
messagedlg.c
V 25
file ap.5bk.r14427/290582
K 12
messagedlg.h
V 22
file 2dm.0.r5989/31896
K 12
messagewin.c
V 25
file aq.5bk.r14427/286529
K 12
messagewin.h
V 20
file g3.0.r5489/3851
K 11
optiondlg.c
V 24
file ar.5ck.r16165/67808
K 11
optiondlg.h
V 21
file as.0.r1432/23133
K 7
pages.c
V 23
file 2qm.5ck.r16129/480
K 7
pages.h
V 22
file 2qn.0.r10536/7909
K 9
pixcomm.c
V 21
file at.0.r3145/18494
K 9
pixcomm.h
V 20
file au.0.r4034/9777
K 10
pixcommp.h
V 20
file av.0.r4034/8719
K 8
plrdlg.c
V 24
file aw.5ck.r15990/61152
K 8
plrdlg.h
V 20
file g4.0.r5489/3140
K 10
ratesdlg.c
V 25
file ax.5ck.r15410/352614
K 10
ratesdlg.h
V 22
file 2dn.0.r5989/31227
K 10
repodlgs.c
V 24
file ay.5ck.r16015/54490
K 10
repodlgs.h
V 21
file az.0.r10957/6056
K 11
resources.c
V 20
file b0.0.r9310/2224
K 11
resources.h
V 21
file b1.0.r3145/14204
K 14
spaceshipdlg.c
V 24
file b2.5ck.r16015/56004
K 14
spaceshipdlg.h
V 21
file b3.0.r2187/11152
K 8
themes.c
V 23
file 350.0.r10945/14451
K 14
voteinfo_bar.c
V 25
file 4hg.5ck.r16063/52010
K 14
voteinfo_bar.h
V 25
file 4hh.5ck.r16063/52179
K 7
wldlg.c
V 24
file o5.5ck.r15911/25224
K 7
wldlg.h
V 22
file o6.0.r10181/18680
END
ENDREP
id: 9o.5ck.r16165/71465
type: dir
pred: 9o.5ck.r16129/3883
count: 892
text: 16165 68307 3145 3145 b118ed6512c9b2feb7154f0c9d6eb48b
props: 11108 12237 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-xaw
copyroot: 15280 /trunk

id: yl.5ck.r16165/71706
type: file
pred: yl.5ck.r16023/52415
count: 17
text: 16165 5174 3191 6330 7ecec7b6d14bc796116dd89006e390d3
props: 7269 14883 111 0 8e6f231ffe21dad0a34f68090b1c0b69
cpath: /trunk/client/gui-win32/optiondlg.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file nr.5ck.r16063/58955
K 8
canvas.c
V 25
file 2ya.5ck.r16059/39826
K 8
canvas.h
V 22
file 2yb.0.r10131/2132
K 10
chatline.c
V 24
file xk.5ck.r15990/68105
K 10
chatline.h
V 20
file xl.0.r5785/7678
K 9
citydlg.c
V 23
file xm.5ck.r16025/5779
K 9
citydlg.h
V 19
file xn.0.r5671/865
K 9
cityrep.c
V 23
file xo.5ck.r16025/7040
K 9
cityrep.h
V 22
file xp.0.r3745/159022
K 8
cma_fe.c
V 24
file 2fu.5ck.r16025/6788
K 8
cma_fe.h
V 20
file 2fv.0.r7442/210
K 8
colors.c
V 21
file xq.0.r10461/1484
K 8
colors.h
V 21
file xr.0.r10461/1841
K 12
connectdlg.c
V 24
file xs.5ck.r15990/68359
K 12
connectdlg.h
V 20
file xt.0.r8331/7783
K 9
dialogs.c
V 24
file xu.5ck.r15990/67341
K 9
dialogs.h
V 21
file xv.0.r10883/4520
K 10
diplodlg.c
V 23
file xw.5ck.r16025/7292
K 10
diplodlg.h
V 22
file xx.0.r13481/26989
K 9
finddlg.c
V 23
file xy.5ck.r16025/7544
K 9
finddlg.h
V 22
file 2dg.0.r5989/39776
K 9
gotodlg.c
V 23
file xz.5ck.r16025/6031
K 9
gotodlg.h
V 20
file y0.0.r3786/3776
K 10
graphics.c
V 24
file y1.5ck.r15296/79962
K 10
graphics.h
V 21
file y2.0.r10294/2998
K 10
gui_main.c
V 24
file y3.5ck.r16059/40074
K 10
gui_main.h
V 24
file y4.5ck.r16059/40327
K 11
gui_stuff.c
V 23
file y5.5ck.r16025/6536
K 11
gui_stuff.h
V 22
file y6.0.r13328/10851
K 11
happiness.c
V 23
file 137.5bk.r14335/341
K 11
happiness.h
V 23
file 138.0.r13481/26751
K 9
helpdlg.c
V 22
file y7.5ck.r15636/387
K 9
helpdlg.h
V 22
file y8.0.r3745/150873
K 10
inputdlg.c
V 19
file y9.0.r8895/460
K 10
inputdlg.h
V 22
file ya.0.r3745/153242
K 10
inteldlg.c
V 25
file yb.5ck.r15410/360287
K 10
inteldlg.h
V 22
file 2dh.0.r5989/39102
K 9
mapctrl.c
V 25
file yc.5ck.r15410/360029
K 9
mapctrl.h
V 21
file yd.0.r6430/14685
K 9
mapview.c
V 25
file ye.5ck.r15410/357978
K 9
mapview.h
V 22
file yf.0.r13412/11359
K 6
menu.c
V 23
file yg.5ck.r15893/1293
K 6
menu.h
V 20
file yh.0.r5785/9458
K 12
messagedlg.c
V 25
file yi.5bk.r14427/299083
K 12
messagedlg.h
V 22
file 2di.0.r5989/40112
K 12
messagewin.c
V 25
file yj.5bk.r14427/295548
K 12
messagewin.h
V 22
file yk.0.r3745/155966
K 11
optiondlg.c
V 24
file yl.5ck.r16165/71706
K 11
optiondlg.h
V 21
file ym.0.r3959/96575
K 7
pages.c
V 25
file 2qk.5ck.r16063/58356
K 7
pages.h
V 22
file 2ql.0.r8639/12634
K 8
plrdlg.c
V 24
file yn.5ck.r15990/67851
K 8
plrdlg.h
V 20
file yo.0.r3847/6164
K 10
ratesdlg.c
V 25
file yp.5ck.r15410/360544
K 10
ratesdlg.h
V 22
file 2dj.0.r5989/39439
K 10
repodlgs.c
V 23
file yq.5ck.r16025/6283
K 10
repodlgs.h
V 22
file yr.0.r3745/151547
K 14
spaceshipdlg.c
V 23
file yt.5ck.r16025/7797
K 14
spaceshipdlg.h
V 20
file yu.0.r3778/5068
K 8
sprite.c
V 25
file 2yc.5ck.r16059/39575
K 8
sprite.h
V 23
file 2yd.0.r10141/44406
K 8
themes.c
V 23
file 34z.0.r10945/20562
K 14
voteinfo_bar.c
V 25
file 4he.5ck.r16063/58606
K 14
voteinfo_bar.h
V 25
file 4hf.5ck.r16063/58781
K 7
wldlg.c
V 24
file yv.5ck.r15911/28780
K 7
wldlg.h
V 21
file yw.0.r12515/1620
END
ENDREP
id: np.5ck.r16165/74867
type: dir
pred: np.5ck.r16063/62116
count: 675
text: 16165 71961 2893 2893 35eff737dc46400aef6ff3a6f24ed714
props: 11108 12557 68 0 fbaef5f6348d6ae4b0cc177104ca4ad2
cpath: /trunk/client/gui-win32
copyroot: 15280 /trunk

id: 390.5ck.r16165/75111
type: file
pred: 390.5ck.r16023/56234
count: 20
text: 16165 2709 1831 33076 6ee87a775f632c616ef1b9cdb00ae260
props: 12670 112635 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/client/gui-sdl/themespec.c
copyroot: 15280 /trunk

id: 391.5ck.r16165/75368
type: file
pred: 391.5bk.r14377/2300476
count: 8
text: 16165 8528 1153 2109 db08e01673b933ccd64bffbaf0c23da7
props: 12670 113220 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /trunk/client/gui-sdl/themespec.h
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 25
file 16u.5ck.r16063/63204
K 14
SDL_rotozoom.c
V 24
file 3jy.0.r12670/115301
K 14
SDL_rotozoom.h
V 24
file 3jz.0.r12670/115888
K 9
SDL_ttf.c
V 24
file 2dz.5bk.r13597/7386
K 9
SDL_ttf.h
V 24
file 2e0.5bk.r13597/7647
K 11
alphablit.c
V 23
file 3be.0.r13354/59832
K 8
canvas.c
V 25
file 39i.5bk.r15074/21186
K 8
canvas.h
V 23
file 39j.0.r13354/56918
K 16
caravan_dialog.c
V 26
file 3bp.5ck.r15410/367706
K 10
chatline.c
V 25
file 16y.5ck.r15990/72422
K 10
chatline.h
V 25
file 16z.5ck.r15990/72678
K 9
citydlg.c
V 24
file 170.5ck.r15883/3079
K 9
citydlg.h
V 23
file 171.0.r13354/55222
K 9
cityrep.c
V 26
file 172.5ck.r15410/368737
K 9
cityrep.h
V 22
file 173.0.r12769/2941
K 8
cma_fe.c
V 25
file 174.5ck.r15813/79444
K 8
cma_fe.h
V 23
file 175.0.r11361/43495
K 8
colors.c
V 23
file 176.0.r13354/62500
K 8
colors.h
V 24
file 177.5bk.r14076/4693
K 12
connectdlg.c
V 25
file 178.5ck.r15990/72931
K 12
connectdlg.h
V 23
file 179.0.r12349/45319
K 9
dialogs.c
V 25
file 17a.5ck.r15990/71911
K 9
dialogs.h
V 23
file 17b.0.r13354/61529
K 10
diplodlg.c
V 25
file 17c.5ck.r16121/19761
K 10
diplodlg.h
V 22
file 17d.0.r11584/2869
K 17
diplomat_dialog.c
V 26
file 3bn.5ck.r15410/369250
K 9
finddlg.c
V 25
file 17e.5ck.r16015/63375
K 9
finddlg.h
V 20
file 2d8.0.r5991/702
K 9
gotodlg.c
V 26
file 17f.5ck.r15410/366414
K 9
gotodlg.h
V 22
file 17g.0.r6515/58208
K 10
graphics.c
V 27
file 17h.5bk.r14377/2300750
K 10
graphics.h
V 23
file 17i.0.r12611/13939
K 11
gui_iconv.c
V 25
file 17l.5ck.r15619/14469
K 11
gui_iconv.h
V 23
file 17m.0.r13354/66657
K 8
gui_id.h
V 25
file 17n.5bk.r15200/35062
K 10
gui_main.c
V 25
file 17o.5ck.r16059/43871
K 10
gui_main.h
V 25
file 17p.5ck.r16059/44129
K 11
gui_mouse.c
V 23
file 3ca.0.r13354/59349
K 11
gui_mouse.h
V 24
file 3cb.0.r12670/112397
K 12
gui_string.c
V 23
file 17r.5ck.r15493/812
K 12
gui_string.h
V 23
file 17s.0.r13481/30445
K 14
gui_tilespec.c
V 26
file 191.5ck.r15410/366926
K 14
gui_tilespec.h
V 25
file 192.5bk.r13912/53929
K 11
happiness.c
V 23
file 17x.0.r11361/41144
K 11
happiness.h
V 23
file 17y.0.r11361/41867
K 9
helpdlg.c
V 24
file 17z.5ck.r15834/1343
K 9
helpdlg.h
V 23
file 180.0.r11361/47416
K 10
inputdlg.c
V 23
file 181.0.r11361/47897
K 10
inputdlg.h
V 23
file 182.0.r5500/260641
K 10
inteldlg.c
V 25
file 183.5ck.r16015/63118
K 10
inteldlg.h
V 22
file 2d9.0.r11409/2687
K 9
mapctrl.c
V 24
file 184.5ck.r15883/4341
K 9
mapctrl.h
V 23
file 185.0.r13354/63700
K 9
mapview.c
V 24
file 186.5ck.r15883/3328
K 9
mapview.h
V 23
file 187.0.r13354/56676
K 6
menu.c
V 24
file 188.5ck.r15883/4090
K 6
menu.h
V 25
file 189.5bk.r13856/57405
K 12
messagedlg.c
V 23
file 18a.0.r11361/49350
K 12
messagedlg.h
V 22
file 2da.0.r5989/48394
K 12
messagewin.c
V 24
file 18b.5ck.r15883/3836
K 12
messagewin.h
V 23
file 18c.0.r6286/140236
K 5
mmx.h
V 23
file 2e1.0.r6286/134429
K 11
optiondlg.c
V 25
file 18d.5ck.r15911/32327
K 11
optiondlg.h
V 22
file 18e.0.r12381/2174
K 7
pages.c
V 25
file 2qg.5ck.r16063/62606
K 7
pages.h
V 22
file 2qh.0.r8639/16416
K 8
plrdlg.c
V 26
file 18f.5ck.r15785/122781
K 8
plrdlg.h
V 22
file 18g.0.r6387/81301
K 10
ratesdlg.h
V 22
file 2db.0.r5989/47726
K 10
repodlgs.c
V 23
file 18i.5ck.r15737/216
K 10
repodlgs.h
V 23
file 18j.0.r13354/58129
K 14
spaceshipdlg.c
V 25
file 18m.5ck.r16015/63630
K 14
spaceshipdlg.h
V 23
file 18n.0.r5500/263363
K 8
sprite.c
V 23
file 39k.0.r13354/55462
K 8
sprite.h
V 24
file 39l.0.r12670/108062
K 18
themebackgrounds.c
V 25
file 3ff.5bk.r13794/17164
K 18
themebackgrounds.h
V 25
file 3fg.5bk.r13794/17440
K 13
themecolors.c
V 24
file 392.0.r12670/113849
K 13
themecolors.h
V 24
file 393.0.r12670/114433
K 8
themes.c
V 25
file 38p.5ck.r16059/43622
K 11
themespec.c
V 25
file 390.5ck.r16165/75111
K 11
themespec.h
V 25
file 391.5ck.r16165/75368
K 11
unistring.c
V 23
file 18o.0.r13354/57401
K 11
unistring.h
V 23
file 18p.0.r13481/30205
K 14
voteinfo_bar.c
V 25
file 4ha.5ck.r16063/62859
K 14
voteinfo_bar.h
V 25
file 4hb.5ck.r16063/63032
K 8
widget.c
V 25
file 3fu.5bk.r15218/30693
K 8
widget.h
V 25
file 3fv.5bk.r15218/31232
K 15
widget_button.c
V 24
file 3fh.5bk.r14076/3619
K 15
widget_button.h
V 24
file 3g7.0.r12670/113556
K 17
widget_checkbox.c
V 24
file 3fi.5bk.r14076/6064
K 17
widget_checkbox.h
V 24
file 3g8.0.r12670/106620
K 13
widget_core.c
V 23
file 3fj.0.r13354/61769
K 13
widget_edit.c
V 23
file 3fk.0.r13354/64909
K 13
widget_edit.h
V 24
file 3g9.0.r12670/115595
K 13
widget_icon.c
V 23
file 3fl.0.r13354/59104
K 13
widget_icon.h
V 24
file 3ga.0.r12670/112107
K 14
widget_label.c
V 24
file 3fm.5bk.r13597/6851
K 14
widget_label.h
V 24
file 3gb.0.r12670/110079
K 10
widget_p.h
V 24
file 3fn.0.r12670/107197
K 18
widget_scrollbar.c
V 24
file 3fo.5bv.r14076/5760
K 18
widget_scrollbar.h
V 24
file 3gc.0.r12670/116811
K 15
widget_window.c
V 23
file 3fp.0.r13354/55944
K 15
widget_window.h
V 23
file 3gd.0.r12699/32533
K 7
wldlg.c
V 25
file 18q.5ck.r16156/32660
K 7
wldlg.h
V 23
file 18r.0.r11361/49592
END
ENDREP
id: 16t.5ck.r16165/80566
type: dir
pred: 16t.5ck.r16156/37856
count: 561
text: 16165 75625 4928 4928 b1d710e835fb38a8cde9450ca2aedd5a
props: 11108 12869 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-sdl
copyroot: 15280 /trunk

id: 352.5ck.r16165/80810
type: file
pred: 352.5ck.r16023/64621
count: 4
text: 16165 47619 1943 4607 732471a97ea8eb465f4d61b669fa281c
props: 10945 24129 110 0 94a2a96823d3c54fff31bdd51de17982
cpath: /trunk/client/themes_common.c
copyroot: 15280 /trunk

id: 139.5ck.r16165/81062
type: file
pred: 139.5bk.r14370/4417393
count: 26
text: 16165 53026 992 12605 62a87ac82df5cb532afc8ff483e821c7
props: 10416 5336 111 0 227f1557f5d66bc46d32e4db301b2671
cpath: /trunk/client/audio.c
copyroot: 15280 /trunk

id: 353.5ck.r16165/81308
type: file
pred: 353.0.r13227/35479
count: 3
text: 16165 54046 139 972 2b0266bbfe410165107b94263fa71129
props: 10945 24465 110 0 94a2a96823d3c54fff31bdd51de17982
cpath: /trunk/client/themes_common.h
copyroot: 15280 /trunk

id: 13a.5ck.r16165/81556
type: file
pred: 13a.0.r10416/6162
count: 5
text: 16165 54213 106 1836 191e481539f178f5cbae6205fda4c7bd
props: 10416 6039 110 0 7d181b70073f10d0c5a58c73a72d4f04
cpath: /trunk/client/audio.h
copyroot: 15280 /trunk

id: hl.5ck.r16165/81795
type: file
pred: hl.5ck.r16139/10552
count: 420
text: 16165 54427 4856 169501 f56206fe9676b7c3295dae9d71d2824a
props: 11096 3792 112 0 71c6b453a620995957914f193a952f13
cpath: /trunk/client/tilespec.c
copyroot: 15280 /trunk

id: i6.5ck.r16165/82043
type: file
pred: i6.5ck.r16139/10797
count: 188
text: 16165 59312 138 10680 75f17ea04e526d7a1c7f16c31d1d06cf
props: 11011 1634 112 0 2772e2600f52d1215973b0ec3802f304
cpath: /trunk/client/tilespec.h
copyroot: 15280 /trunk

id: hc.5ck.r16165/82289
type: file
pred: hc.5ck.r16021/34469
count: 131
text: 16165 59536 49 15509 ab157555e4b5bf70b3df6ae302d5d090
props: 10997 68 112 0 8869376353a720fe76c0d512d1b8c326
cpath: /trunk/client/clinet.c
copyroot: 15280 /trunk

id: 2f.5cp.r16165/82530
type: file
pred: 2f.5cp.r16141/21173
count: 286
text: 16165 4572 577 30076 91fd0c85f01c48aa722412e7f8ed0bb5
props: 15407 50334 136 0 d530209ca649bf20b5cecaa6957aa1ef
cpath: /trunk/client/client_main.c
copyroot: 15407 /trunk/client/client_main.c

id: dc.5ck.r16165/82800
type: file
pred: dc.5ck.r16081/60
count: 182
text: 16165 15833 31098 81317 c95b27da4faed306833de6c7e6ab5117
props: 10965 83 112 0 b4bb2e29c9087472d2e44c6eab39b6d6
cpath: /trunk/client/options.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 22
file 5f.5ck.r15869/170
K 6
agents
V 23
dir zf.5ck.r16015/46852
K 11
attribute.c
V 22
file xh.5ck.r15627/122
K 11
attribute.h
V 19
file xi.0.r4715/844
K 7
audio.c
V 25
file 139.5ck.r16165/81062
K 7
audio.h
V 25
file 13a.5ck.r16165/81556
K 12
audio_none.c
V 23
file 13d.0.r6129/145164
K 12
audio_none.h
V 22
file 13e.0.r4452/27228
K 11
audio_sdl.c
V 27
file 13f.5bk.r14377/2306692
K 11
audio_sdl.h
V 22
file 13g.0.r4452/26570
K 17
chatline_common.c
V 25
file 14q.5ck.r15990/82336
K 17
chatline_common.h
V 25
file 14r.5ck.r15990/82591
K 16
citydlg_common.c
V 24
file z4.5ck.r16156/32164
K 16
citydlg_common.h
V 24
file z5.5ck.r15681/71947
K 13
cityrepdata.c
V 24
file mb.5ck.r16015/47091
K 13
cityrepdata.h
V 21
file mc.0.r9153/21475
K 11
civclient.c
V 23
file 4f2.5ck.r15408/695
K 13
client_main.c
V 24
file 2f.5cp.r16165/82530
K 13
client_main.h
V 24
file hz.5cq.r16021/34977
K 8
climap.c
V 26
file 197.5ck.r15410/382800
K 8
climap.h
V 25
file 198.5bk.r13917/12934
K 9
climisc.c
V 23
file d5.5ck.r15998/2752
K 9
climisc.h
V 24
file i0.5ck.r15990/86680
K 8
clinet.c
V 24
file hc.5ck.r16165/82289
K 8
clinet.h
V 25
file i1.5bk.r14427/324634
K 15
colors_common.c
V 25
file 33a.5ck.r15923/16727
K 15
colors_common.h
V 25
file 33b.5ck.r15923/16974
K 19
connectdlg_common.c
V 25
file 2fw.5ck.r15990/82080
K 19
connectdlg_common.h
V 26
file 2fx.5bk.r14209/198288
K 9
control.c
V 24
file gz.5ck.r15990/55537
K 9
control.h
V 24
file i2.5ck.r15934/30731
K 7
dummy.c
V 23
file 4f9.5ck.r15641/551
K 8
editor.c
V 25
file 3bg.5ck.r15934/50921
K 8
editor.h
V 25
file 3bh.5ck.r15761/13075
K 11
ggzclient.c
V 25
file 394.5ck.r15814/34717
K 11
ggzclient.h
V 24
file 395.0.r12670/122419
K 6
goto.c
V 24
file vu.5ck.r15832/25709
K 6
goto.h
V 24
file vv.5ck.r15509/18108
K 8
gui-ftwl
V 24
dir 2k2.5ck.r16063/72148
K 11
gui-gtk-2.0
V 23
dir zs.5ck.r16165/67307
K 7
gui-sdl
V 24
dir 16t.5ck.r16165/80566
K 8
gui-stub
V 23
dir mh.5ck.r16063/75862
K 9
gui-win32
V 23
dir np.5ck.r16165/74867
K 7
gui-xaw
V 23
dir 9o.5ck.r16165/71465
K 10
helpdata.c
V 24
file h1.5ck.r16015/69219
K 10
helpdata.h
V 25
file i3.5bk.r14417/261925
K 7
include
V 23
dir b8.5ck.r16063/58115
K 16
mapctrl_common.c
V 25
file 15m.5ck.r15990/82844
K 16
mapctrl_common.h
V 23
file 15n.0.r11378/41712
K 16
mapview_common.c
V 24
file z2.5ck.r16139/11041
K 16
mapview_common.h
V 24
file z3.5ck.r15923/22323
K 19
messagewin_common.c
V 25
file 14s.5ck.r15909/33786
K 19
messagewin_common.h
V 25
file 14t.5ck.r15909/37338
K 9
options.c
V 24
file dc.5ck.r16165/82800
K 9
options.h
V 24
file i4.5ck.r16165/62079
K 17
overview_common.c
V 26
file 2yk.5ck.r15410/337841
K 17
overview_common.h
V 24
file 2yl.5bk.r15036/1721
K 10
packhand.c
V 23
file n.5ck.r16156/32415
K 10
packhand.h
V 24
file i5.5bk.r14422/90154
K 15
plrdlg_common.c
V 25
file 14u.5ck.r16015/68968
K 15
plrdlg_common.h
V 26
file 14v.5bk.r14417/257761
K 17
repodlgs_common.c
V 25
file 11i.5ck.r16165/67553
K 17
repodlgs_common.h
V 25
file 11j.5bk.r14162/22062
K 9
reqtree.c
V 26
file 2ym.5ck.r15410/337339
K 9
reqtree.h
V 23
file 2yn.0.r13481/22674
K 9
servers.c
V 25
file 33x.5ck.r15626/13760
K 9
servers.h
V 25
file 33y.5ck.r15505/14398
K 6
text.c
V 24
file 2g3.5ck.r15988/5211
K 6
text.h
V 24
file 2g4.5bk.r14284/8380
K 15
themes_common.c
V 25
file 352.5ck.r16165/80810
K 15
themes_common.h
V 25
file 353.5ck.r16165/81308
K 10
tilespec.c
V 24
file hl.5ck.r16165/81795
K 10
tilespec.h
V 24
file i6.5ck.r16165/82043
K 10
voteinfo.c
V 25
file 4fe.5ck.r16063/72393
K 10
voteinfo.h
V 24
file 4ff.5ck.r15676/4001
END
ENDREP
id: d.5ck.r16165/86591
type: dir
pred: d.5ck.r16156/41641
count: 4611
text: 16165 83042 3536 3536 7f340e6ca47bf10ad1b2e91447ac562d
props: 12883 2898 109 0 732f4656541fb514e4368d9517bdf317
cpath: /trunk/client
copyroot: 15280 /trunk

PLAIN
K 9
ABOUT-NLS
V 22
file fu.0.r13215/85704
K 7
AUTHORS
V 19
file 5u.0.r12982/94
K 7
COPYING
V 19
file 1h.0.r9643/400
K 9
ChangeLog
V 26
file 6l.5ck.r15924/3800068
K 7
INSTALL
V 21
file 6.5bk.r14672/184
K 11
Makefile.am
V 23
file 59.5bk.r14918/1267
K 4
NEWS
V 22
file 6m.5bk.r13824/202
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 21
dir 8.5ck.r16162/2157
K 10
autogen.sh
V 22
file 12o.5ck.r15690/50
K 9
bootstrap
V 23
dir 2p5.5ck.r15970/1621
K 6
client
V 22
dir d.5ck.r16165/86591
K 6
common
V 21
dir p.5ck.r16158/3527
K 12
config.mac.h
V 20
file hb.0.r6045/5982
K 12
configure.ac
V 23
file 149.5ck.r15955/950
K 4
data
V 22
dir w.5ck.r16139/10321
K 6
debian
V 22
dir 5w.5ck.r15836/2958
K 12
dependencies
V 25
dir 2yu.5ck.r15799/243560
K 11
diff_ignore
V 19
file qq.0.r13200/42
K 3
doc
V 22
dir k7.5ck.r15879/1642
K 2
m4
V 23
dir 12p.5ck.r15941/2062
K 6
manual
V 24
dir 2m2.5ck.r15855/40893
K 2
po
V 24
dir fs.5ck.r16027/501608
K 7
scripts
V 23
dir 2yo.5bk.r14810/1300
K 6
server
V 22
dir z.5ck.r16156/31932
K 10
stamp-h.in
V 19
file 80.0.r1125/241
K 5
tests
V 22
dir 2g9.5ck.r15661/767
K 7
utility
V 23
dir 1c.5ck.r16165/61846
K 10
version.in
V 25
file 2lo.5ck.r16156/25173
K 3
vms
V 21
dir u9.0.r11105/70719
K 5
win32
V 24
dir 2eu.5bk.r13732/30345
END
ENDREP
id: 3.5ck.r16165/88090
type: dir
pred: 3.5ck.r16162/3647
count: 12421
text: 16165 86824 1253 1253 003eaf2a725936ac240cc09d2988385b
props: 11109 0 255 0 8cbc80e0da9c47b05b8ffee17ea9b0f1
cpath: /trunk
copyroot: 15280 /trunk

PLAIN
K 8
branches
V 19
dir 1.0.r16164/6556
K 4
tags
V 21
dir 2.0.r15609/968232
K 5
trunk
V 22
dir 3.5ck.r16165/88090
K 7
website
V 18
dir 3ge.0.r12388/0
END
ENDREP
id: 0.0.r16165/88478
type: dir
pred: 0.0.r16164/6874
count: 16165
text: 16165 88313 152 152 9419af006ce27a75a2f00d719b4b82f7
cpath: /
copyroot: 0 /

10m.5ck.t16164-1 modify true false /trunk/client/gui-gtk-2.0/gui_stuff.c

i4.5ck.t16164-1 modify true false /trunk/client/options.h

139.5ck.t16164-1 modify true false /trunk/client/audio.c

353.5ck.t16164-1 modify true false /trunk/client/themes_common.h

13a.5ck.t16164-1 modify true false /trunk/client/audio.h

10z.5ck.t16164-1 modify true false /trunk/client/gui-gtk-2.0/menu.c

hl.5ck.t16164-1 modify true false /trunk/client/tilespec.c

i6.5ck.t16164-1 modify true false /trunk/client/tilespec.h

4hy.5ck.t16164-1 modify true false /trunk/utility/string_vector.c

hc.5ck.t16164-1 modify true false /trunk/client/clinet.c

ar.5ck.t16164-1 modify true false /trunk/client/gui-xaw/optiondlg.c

390.5ck.t16164-1 modify true false /trunk/client/gui-sdl/themespec.c

2f.5cp.t16164-1 modify true false /trunk/client/client_main.c

118.5ck.t16164-1 modify true false /trunk/client/gui-gtk-2.0/repodlgs.c

yl.5ck.t16164-1 modify true false /trunk/client/gui-win32/optiondlg.c

an.5ck.t16164-1 modify true false /trunk/client/gui-xaw/menu.c

391.5ck.t16164-1 modify true false /trunk/client/gui-sdl/themespec.h

11i.5ck.t16164-1 modify true false /trunk/client/repodlgs_common.c

10d.5ck.t16164-1 modify true false /trunk/client/gui-gtk-2.0/gamedlgs.c

dc.5ck.t16164-1 modify true false /trunk/client/options.c

10k.5ck.t16164-1 modify true false /trunk/client/gui-gtk-2.0/gui_main.c

352.5ck.t16164-1 modify true false /trunk/client/themes_common.c


88478 88627
