DELTA 17037 59 9369
SVN  >	d 6  j( C 0G uM W5"  F@6 C F@  CC F@! C F@< ?n Y
 C F@q CB F@U C F@ VmQ C F@ j.) C F@ Y*U C F@H C F@P C F@ C F@#log
/* client */
#include "options.h"

/* client/gui-gtk-2.0 */
#include "gui_main.h"
#include "gui_stuff.h"

#include "optiondlg.h"


/* The option dialog data. */
struct option_dialog {
  const struct option_set *poptset;     /* The option set. */
  Widget shell;                         /* The main widget. */
};

#define SPECLIST_TAG option_dialog
#define SPECLIST_TYPE struct option_dialog
#include "speclist.h"
#define option_dialogs_iterate(pdialog) \
  TYPED_LIST_ITERATE(struct option_dialog, option_dialogs, pdialog)
#define option_dialogs_iterate_end  LIST_ITERATE_END

/* All option dialog are set on this list. */
static struct option_dialog_list *option_dialogs = NULL;

/* Option dialog main functions. */
static struct option_dialog *
option_dialog_get(const struct option_set *poptset);
static struct option_dialog *
option_dialog_new(const char *name, const struct option_set *poptset);
static void option_dialog_destroy(struct option_dialog *pdialog);

static inline void option_dialog_foreach(struct option_dialog *pdialog,
                                         void (*option_action)
                                         (struct option *));

static void option_dialog_option_refresh(struct option *poption);
static void option_dialog_option_apply(struct option *poption);
**
  Callback to change the entry for a string option that has a fixed list
 ***********/
static void stropt_change_callback(Widget w, XtPointer client_data,
                                   XtPointer call_data)
{
  char *val = (char *) ************
  OK button callback.
******/
static void option_dialog_ok_callback(Widget w, XtPointer client_data,
                                      XtPointer call_data)
{
  struct option_dialog *pdialog = (struct option_dialog *) client_data;

  option_dialog_foreach(pdialog, option_dialog_option_apply);
  option_dialog_destroy(pdialog);
}************
  Cancel button callback.
******/
static void option_dialog_cancel_callback(Widget w, XtPointer client_data,
                                          XtPointer call_data)
{
  struct option_dialog *pdialog = (struct option_dialog *) client_data;

  option_dialog_destroy(pdialog);
}************
  Returns the option dialog which fit the option set.
******/
static struct option_dialog *
option_dialog_get(const struct option_set *poptset)
{
  if (NULL != option_dialogs) {
    option_dialogs_iterate(pdialog) {
      if (pdialog->poptset == poptset) {
        return pdialog;
      }
    } option_dialogs_iterate_end;
  }
  return NULL;
}************
  Creates a new option dialog.
******/
static struct option_dialog *
option_dialog_new(const char *name, const struct option_set *poptset)
{
  struct option_dialog *pdialog;
  Widget form, viewport, command, scrollform, label, widget;
  Dimension width, longest_width = 0;

  /* Create the dialog structure. */
  pdialog = fc_malloc(sizeof(*pdialog));
  pdialog->poptset = poptset;
  pdialog->shell = I_T(XtCreatePopupShell("settableoptionspopup",
                                          transientShellWidgetClass,
                                          toplevel, NULL, 0));
  /* Append to the option dialog list. */
  if (NULL == option_dialogs) {
    option_dialogs = option_dialog_list_new();
  }
  option_dialog_list_append(option_dialogs, pdialog);

  form = XtVaCreateManagedWidget("settableoptionsform", formWidgetClass,
                                 pdialog->shell, NULL);
  label = I_L(XtVaCreateManagedWidget("settableoptionslabel",
                                      labelWidgetClass, form, NULL));
  viewport = XtVaCreateManagedWidget("settableoptionsviewport",
                                     viewportWidgetClass, form, NULL);
  scrollform = XtVaCreateManagedWidget("settableoptionsscrollform",
                                       formWidgetClass, viewport, NULL);

  /* Add option labels. */
  widget = NULL;
  options_iterate(poptset, poption) {
    if (NULL != widget) {
      option_set_gui_data(poption, widget);     /* Set previous label. */

      widget = XtVaCreateManagedWidget("label", labelWidgetClass,
                                       scrollform, XtNlabel,
                                       option_description(poption),
                                       XtNfromVert, widget, NULL);
    } else {
      widget = XtVaCreateManagedWidget("label", labelWidgetClass,
                                       scrollform, XtNlabel,
                                       option_description(poption), NULL);
    }

    /* The addition of a scrollbar screws things up. There must be a
     * better way to do this. */
    XtVaGetValues(widget, XtNwidth, &width, NULL);
    width += 15;
    XtVaSetValues(widget, XtNwidth, width, NULL);

    if (width > longest_width) {
      longest_width = width;
    }
  } options_iterate_end;

  /* Resize label. */
  XtVaSetValues(label, XtNwidth, longest_width + 15, NULL);

  /* Add option widgets. */
  options_iterate(poptset, poption) {
    widget = option_get_gui_data(poption);      /* Get previous label. */
    option_set_gui_data(poption, NULL);

    switch (option_type(poption)) {
    case OT_BOOLEAN:
      if (NULL != widget) {
        widget = XtVaCreateManagedWidget("toggle", toggleWidgetClass,
                                         scrollform, XtNfromHoriz,
                                         label, XtNfromVert, widget, NULL);
      } else {
        widget = XtVaCreateManagedWidget("toggle", toggleWidgetClass,
                                         scrollform, XtNfromHoriz, label,
                                         NULL);
      }
      XtAddCallback(widget, XtNcallback, toggle_callback, NULL);
      option_set_gui_data(poption, widget        Widget popupmenu;

        if (NULL != widget) {
          widget = XtVaCreateManagedWidget(option_name(poption),
                                           menuButtonWidgetClass, scrollform,
                                           XtNfromHoriz, label, XtNfromVert,
                                           widget, NULL);
        } else {
          widget = XtVaCreateManagedWidget(option_name(poption),
                                           menuButtonWidgetClass, scrollform,
                                           XtNfromHoriz, label, NULL);
        }

        popupmenu = XtVaCreatePopupShell("menu", simpleMenuWidgetClass,
                                         widget, NULL);

        strvec_iterate(vals, val) {
        * too, but for values that are uninitialized (empty) this
           * would be confusing. */
          XtSetSensitive(widget, FALSE);
        }

        /* There should be another way to set width of menu button */
        XtVaSetValues(widget, XtNwidth, 120 ,NULL);
        option_set_gui_data(poption, widget);
        break;
      }
      /* Else fallthrough. */
    case OT_INTEGER:
      if (NULL != widget) {
        widget = XtVaCreateManagedWidget("input", asciiTextWidgetClass,
                                         scrollform, XtNfromHoriz, label,
                                         XtNfromVert, widget, NULL);
      } else {
        widget = XtVaCreateManagedWidget("input", asciiTextWidgetClass,
                                         scrollform, XtNfromHoriz, label,
                                         NULL);
      }
      break;
    case OT_FONT:
    case OT_VIDEO_MODE:
      log_error("Option type %s (%d) not supported yet.",
                option_type_name(option_type(poption)),
                option_type(poption));
      break;
    }
  } options_iterate_end;

  /* Add buttons. */
  command = I_L(XtVaCreateManagedWidget("settableoptionsokcommand",
                                        commandWidgetClass, form, NULL));
  XtAddCallback(command, XtNcallback, option_dialog_ok_callback, pdialog);

  command = I_L(XtVaCreateManagedWidget("settableoptionscancelcommand",
                                        commandWidgetClass, form, NULL));
  XtAddCallback(command, XtNcallback,
                option_dialog_cancel_callback, pdialog);

  XtRealizeWidget(pdialog->shell);
  xaw_horiz_center(label);
  XtSetSensitive(main_form, FALSE);
  xaw_set_relative_position(toplevel, pdialog->shell, 25, 25);
  XtPopup(pdialog->shell, XtGrabNone);

  return pdialog;
}************
  Destroys an option dialog.
******/
static void option_dialog_destroy(struct option_dialog *pdialog)
{
  if (NULL != option_dialogs) {
    option_dialog_list_remove(option_dialogs, pdialog);
  }

  options_iterate(pdialog->poptset, poption) {
    option_set_gui_data(poption, NULL);
  } options_iterate_end;

  XtDestroyWidget(pdialog->shell);
  free(pdialog);
  XtSetSensitive(main_form, TRUE);
}************
  Do an action for all options of the option dialog.
******/
static inline void option_dialog_foreach(struct option_dialog *pdialog,
                                         void (*option_action)
                                         (struct option *))
{
  fc_assert_ret(NULL != pdialog);

  options_iterate(pdialog->poptset, poption) {
    option_action(poption);
  } options_iterate_end;
}************
  Update an option in the option dialog.
******/
static void option_dialog_option_refresh(struct option *poption)
{
  Widget widget = (Widget) option_get_gui_data(poption);

  switch (option_type(poption)) {
  case OT_BOOLEAN:
    XtVaSetValues(widget, XtNstate, option_bool_get(poption),
                  XtNlabel, option_bool_get(poption) ? _("Yes") : _("No"),
                  NULL);
  break;
  case OT_INTEGER:
    {
      char valstr[64];

      fcwidget, XtNstring, valstr, NULL);
    }
    break;
  case OT_STRING:
    XtVaSetValues(widget, option_str_values(poption) ? "label"
                  : XtNstring, option_str_get(poption), NULL);
    break;
  case OT_FONT:
  case OT_VIDEO_MODE:
    log_error("Option type %s (%d) not supported yet.",
              option_type_name(option_type(poption)),
              option_type(poption));
    break;
  }

  XtSetSensitive(widget, option_is_changeable(poption));
}************
  Apply the option change.
******/
static void option_dialog_option_apply(struct option *poption)
{
  if (option_is_changeable(poption)) {
    Widget widget{
        Boolean b;

        XtVaGetValues(widget, XtNstate, &b, NULL);
        option_bool_set(poption, b);
      }
      break;
    case OT_INTEGER:
      {
        XtPointer dp;
        int val;

        XtVaGetValues(widget, XtNstring, &dp, NULL);
        if (1 == sscanf(dp, "%d", &val)) {
          option_int_set(poption, val);
        }
      }
      break;
    case OT_STRING:
      {
        XtPointer dp;

        XtVaGetValues(widget, option_str_values(poption) ? "label"
                      : XtNstring, &dp, NULL);
        option_str_set(poption, dp);
      }
      break;
    case OT_FONT:
    case OT_VIDEO_MODE:
      log_error("Option type %s (%d) not supported yet.",
                option_type_name(option_type(poption)),
                option_type(poption));
      break;
    }
  }
}************
  Popup the option dialog for the option set.
struct option_dialog *pdialog = option_dialog_get(poptset);

  if (NULL != pdialog) {
    option_dialog_foreach(pdialog, option_dialog_option_refresh);
  } else {
    (void) option_dialog_new(name, poptset);
  }
}************
  Popdown the option dialog for the option set.
******/
void option_dialog_popdown(const struct option_set *poptset)
{
  struct option_dialog *pdialog = option_dialog_get(poptset);

  if (NULL != pdialog) {
    option_dialog_destroy(pdialog);
  }
}************
  Update the GUI for the option.
******/
void option_gui_update(struct option *poption)
{
  struct option_dialog *pdialog = option_dialog_get(option_optset(poption));

  if (NULL != pdialog) {
    option_dialog_option_refresh(poption);
  }
}************
  Add the GUI for the option.
******/
void option_gui_add(struct option *poption)
{
  /* We cannot currently insert new option widgets. */
  option_dialog_popdown(option_optset(poption));
}************
  Remove the GUI for the option.
******/
void option_gui_remove(struct option *poption)
{
  /* We cannot currently remove new option widgets. */
  option_dialog_popdown(option_optset(poption));
}
ENDREP
DELTA 17229 574 304
SVN  	`:H z  G o ?x oq p^ IO '  A b k
struct video_mode {
  int width;
  int height;
};
#define VIDEO_MODE(ARG_width, ARG_height) \
    { .width = ARG_width, .height = ARG_height }
******
  Constructor.
****************************************************************************/
static inline struct video_mode video_mode(int width, int height)
{
  struct video_mode mode = VIDEO_MODE(width, height);
  return mode;
}
struct video_mode gui_sdl_screendefine SPECENUM_VALUE4 OT_VIDEO_MODE/* Option type OT_VIDEO_MODE functions. */
struct video_mode option_video_mode_get(const struct option *poption);
struct video_mode option_video_mode_def(const struct option *poption);
bool option_video_mode_set(struct option *poption, struct video_mode mode);
ENDREP
DELTA 17042 78895 19363
SVN  ]4@ q ' ;c 01 X{ E  {h4 X{ Q:
  case OT_VIDEO_MODE:
    log_error("Option type %s (%d) not supported yet.",
              option_type_name(option_type(poption)),
              option_type(poption)case OT_VIDEO_MODE:
    log_error("Option type %s (%d) not supported yet.",
              option_type_name(option_type(poption)),
              option_typecase OT_VIDEO_MODE:
    log_error("Option type %s (%d) not supported yet.",
              option_type_name(option_type(poption)),
              option_type(poption));
    break;Apply the option change.

  case OT_VIDEO_MODE:
    log_error("Option type %s (%d) not supported yet.",
              option_type_name(option_type(poption)),
              option_type(poption));
    break;ENDREP
DELTA 17230 0 34535
SVN  Wzu m  9i Y?F U  Y?4 U  W?' U  W? U  f= bC i1 I; Fm Z  En i"0 z]#include "string_vectoronvert a video mode to string. Returns TRUE on successline bool video_mode_to_string(char *buf, size_t buf_len,
                                        struct video_mode mode)
{
  return (2 < fc_snprintf(buf, buf_len, "%dx%d", mode.width, mode.height))Convert a string to video mode. Returns TRUE on successline bool string_to_video_mode(const char *buf,
                                        struct video_mode *mode)
{
  return (2 == sscanf(buf, "%dx%d", &mode->width, &mode->height))Return a string vector containing all video modesstruct strvec *video_mode_list(void)
{
  struct strvec *video_modes = strvec_new();
  /* Don't free this. */
  SDL_Rect **mode = SDL_ListModes(NULL, SDL_FULLSCREEN | Main.screen->flags);
  char buf[64];

  for (; NULL != *mode; mode++) {
    if (video_mode_to_string(buf, sizeof(buf),
                             video_mode((*mode)->w, (*mode)->h))) {
      strvec_append(video_modes, buf);
    }
  }

  return video_modesFree correctly the memory assigned to the video_mode_widgetvoid video_mode_widget_destroy(struct widget *widget)
{
  combo_popdown(widget);
  strvec_destroy((struct strvec *) widget->data.vector)Create a widgetVIDEO_MODE:
    {
      char buf[64];

      if (!video_mode_to_string(buf, sizeof(buf),
                                option_video_mode_get(poption))) {
        /* Always fails. */
        fc_assert(video_mode_to_string(buf, sizeof(buf),
                                       option_video_mode_get(poption)));
      }

buf, video_mode_list(), adj_size(25),
    widget->destroy = video_mode_widget_destroyVIDEO_MODE:
    {
      char buf[64];

      if (video_mode_to_string(buf, sizeof(buf),
                               option_video_mode_get(poption))) {
        copy_chars_to_string16(widget->string16, buf);
      } else {
        /* Always fails. */
        fc_assert(video_mode_to_string(buf, sizeof(buf),
                                       option_video_mode_get(poption)));
      }VIDEO_MODE:
    {
      char *str = convert_to_chars(widget->string16->text);
      struct video_mode mode;

      if (string_to_video_mode(str, &mode)) {
        option_video_mode_set(poption, mode);
      } else {
        /* Always fails. */
        fc_assert(string_to_video_mode(str, &mode));
      }ENDREP
DELTA 16881 0 20363
SVN    28 ( * + f q .v /c L  L : MF L P V@ L L ^1 _4 L  W? L  W?@ L R M L f Ee  - }v M [~ P@ S= V@ S= V@ S=$ V@ S=  V@ S=E b S= V@ S=i V@ L " V@ L  V@ X Rz8 r& J u L @ I> V@ X8G 	O [~B  S=J V@ S=J V@ Z: d4 S=? V@ S=? V@ S=? V@ S=? V@ Z:~ d4 S=L V@ S=L V@ S=[ V@ Z:. d4 S=L V@ S=L V@ L R V@ Z:1 d4 S=  V@ S=  V@E T@7 M L + M L _ M T<d \Lg n, v > t3 W1g 8Q[ z D@ B  4z ' <LY x D@ B  z 4 1 ~~ A8Q 8Y x D@ U7 Py Mq ;dY x D@ )7 1 ~ 88[ z D@ E} m( Ut 1 ~~ 8' tv ){ D@ ; :>{ <w z4 r4 o  w	 %Q H@ {h ]4 /& |' V@ Xu V@ L E P@ L U ='K `3 S=m W= S=o P@ S= V@ S={ V@ S=o P@ L K ^? {h V@ Vvx V@ Vvo T<S Z:i _> V9v V@ V9m T< V9q P@ V9q P@S Z:1 _> U { P@ U l \4H U M X}R Z:E `= L z P@D L s T<H L } P@P Z:B `=B L  P@J L  T<V Z:f _> rzt Xv TO j$ 9-1 M L : M L + M L d M T<E M L N V@ S=o U  L aclient/agents */
#include "cma_fec.h"

/* client/include */
#include "chatline_g.h"
#include "dialogs_g.h"
#include "gui_main_g.h"
#include "menu_g.h"
#include "optiondlgconnectdlg_commoackhand_gestruct video_mode gui_sdl_screen = VIDEO_MODE(640, 480);
bool gui_sdl_do_cursor_animation = TRUE;
bool gui_sdl_use_color_cursors = TRUE**
  Option set structure**/
struct option_set {
  struct option * (*option_by_number) (int);
  struct option * (*option_first) (void);

  int (*category_number) (void);
  const char * (*category_name) (int);
};**
  Returns the option corresponding of the number in this option set**/
struct option *optset_option_by_number(const struct option_set *poptset,
                                       int id)
{
  fc_assert_ret_val(NULL != poptset, NULL);

  return poptset->option_by_number(idReturns the option corresponding of the name in this option set**/
struct option *optset_option_by_name(const struct option_set *poptset,
                                     const char *name)
{
  fc_assert_ret_val(NULL != poptset, NULL);

  options_iterate(poptset, options_iterate_end**
  Returns the first option of this option set**/
struct option *optset_option_first(const struct option_set *poptset)
{
  fc_assert_ret_val(NULL != poptset, NULL);

  return poptset->option_firstReturns the number of categories of this option set**/
int optset_category_number(const struct option_set *poptset)
{
  fc_assert_ret_val(NULL != poptset, 0);

  return poptset->category_numberReturns the name (translated) of the category of this option set**/
const char *optset_category_name(const struct option_set *poptset,
                                 int category)
{
  fc_assert_ret_val(NULL != poptset, NULL);

  return poptset->category_name(category);
}
**
  The base class for options**/
struct option {
  /* A link to the option set. */
  const struct option_set *poptset;
  /* Type of the option. */
  enum option_type type;

  /* Common accessors. */
  const struct option_common_vtable {
    int (*number) (const struct option *);
    const char * (*name) (const struct option *);
    const char * (*description) (const struct option *);
    const char * (*help_text) (const struct option *);
    int (*category) (const struct option *);
    bool (*is_changeable) (const struct option *);
    struct option * (*next) (const struct option *);
  } *common_vtable;
  /* Specific typed accessors. */
  union {
    /* Specific boolean accessors. */
    const struct option_bool_vtable {
      bool (*get) (const struct option *);
      bool (*def) (const struct option *);
      bool (*set) (struct option *, bool);
    } *bool_vtable;
    /* Specific integer accessors. */
    const struct option_int_vtable {
      int (*get) (const struct option *);
      int (*def) (const struct option *);
      int (*min) (const struct option *);
      int (*max) (const struct option *);
      bool (*set) (struct option *, int);
    } *int_vtable;
    /* Specific string accessors. */
    const struct option_str_vtable {
      const char * (*get) (const struct option *);
      const char * (*def) (const struct option *);
      const struct strvec * (*values) (const struct option *);
      bool (*set) (struct option *, const char *);
    } *str_vtable;
    /* Specific font accessors. */
    const struct option_font_vtable {
      const char * (*get) (const struct option *);
      const char * (*def) (const struct option *);
      const char * (*target) (const struct option *);
      bool (*set) (struct option *, const char *);
    } *font_vtable;
    /* Specific font accessors. */
    const struct option_video_mode_vtable {
      struct video_mode (*get) (const struct option *);
      struct video_mode (*def) (const struct option *);
      bool (*set) (struct option *, struct video_mode);
    } *video_mode_vtable;
  };

  /* Called after the value changed. */
  void (*changed_callback) (struct option *option);

  /* Volatile. */
  void *gui_data;
};

#define OPTION(poption) ((struct option *) (poption))

#define OPTION_INIT(optset, spec_type, spec_table_var, common_table,        \
                    spec_table, changed_cb) {                               \
  .poptset = optsetspec_type,                                                        \
  .common_vtable = &common_table,spec_table_var = &spec_tablechanged_cb,                                           \
  .gui_data = NULL                                                          \
}
#define OPTION_BOOL_INIT(optset, common_table, bool_table, changed_cb)      \
  OPTION_INIT(optset, OT_BOOLEAN, bool_vtable, common_table, bool_table,    \
              changed_cb)
#define OPTION_INT_INIT(optset, common_table, int_table, changed_cb)        \
  OPTION_INIT(optset, OT_INTEGER, int_vtable, common_table, int_table,      \
              changed_cb)
#define OPTION_STR_INIT(optset, common_table, str_table, changed_cb)        \
  OPTION_INIT(optset, OT_STRING, str_vtable, common_table, str_table,       \
              changed_cb)
#define OPTION_FONT_INIT(optset, common_table, font_table, changed_cb)      \
  OPTION_INIT(optset, OT_FONT, font_vtable, common_table, font_table,       \
              changed_cb)
#define OPTION_VIDEO_MODE_INIT(optset, common_table, video_mode_table,      \
                               changed_cb)                                  \
  OPTION_INIT(optset, OT_VIDEO_MODE, video_mode_vtable, common_table,       \
              video_mode_table, changed_cb)
**
  Returns the option set owner**/
const struct option_set *option_optset(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);

  return poption->poptset**
  Returns the number of the**/
int option_number(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, -1);

  return poption->common_vtable->number(poptionReturns the name of the**/
const char *option_name(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);

  return poption->common_vtable->name(poptionReturns the description (translated) of the**/
const char *option_description(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);

  return poption->common_vtable->description(poptionReturns the help text (translated) of the**/
const char *option_help_text(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);

  return poption->common_vtable->help_text(poptionReturns the type of the**/
enum option_type option_type(const struct option *poption)
{
  fc**
  Returns the category of the**/
int option_category(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, -1);

  return poption->common_vtable->category(poptionReturns the name (tranlated) of the category of the**/
const char *option_category_name(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);

  return optset_category_name(poption->poptset,
                              poption->common_vtable->category(poption)Returns TRUE if this option can be modified**/
bool option_is_changeable(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, FALSE);

  return poption->common_vtable->is_changeable(poptionReturns the next option or NULL if this is the last**/
struct option *option_next(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);

  return poption->common_vtable->next(poption**/
bool option_reset(struct option *poption)
{
  fc_assert_ret_val(NULL != poption, FALSE);

  switch (option_type(poption)) {
  case OT_INTEGER:
    return option_int_set(poption, option_int_def(poption));
  case OT_STRING:
    return option_str_set(poption, option_str_def(poption));
  case OT_FONT:
    return option_font_set(poption, option_font_def(poption));
  case OT_VIDEO_MODE:
    return option_video_mode_set(poption, option_video_mode**/
void option_set_changed_callback(struct option *poption,
                                 void (*callback) (struct option *))
{
  fc**
  Force to use the option changed callback**/
void option_changed(struct option *poption)
{
  fc_assert_ret(NULL != poption);

  if (!options_fully_initialized) {
    /* Prevent to use non-initialized datas. */
    return;
  }

  if (
  option_gui_update(poptionSet the gui data for**/
void option_set_gui_data(struct option *poption, void *data)
{
  fc**
  Returns the gui data**/
void *option_get_gui_data(const struct option *poption)
{
  fc**
  Returns the current value of this boolean**/
bool option_bool_get(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(OT_BOOLEAN == poption->type, FALSE);

  return poption->bool_vtable->get(poptionReturns the default value of this boolean**/
bool option_bool_def(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(OT_BOOLEAN == poption->type, FALSE);

  return poption->bool_vtable->def(poptionSets the value of this boolean option. Returns TRUE if the**/
bool option_bool_set(struct option *poption, bool val)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(OT_BOOLEAN == poption->type, FALSE);

  if (poption->bool_vtable->set(poption, val)) {
    option_changed(poption);
    return TRUE**
  Returns the current value of this integer**/
int option_int_get(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, 0);
  fc_assert_ret_val(OT_INTEGER == poption->type, 0);

  return poption->int_vtable->get(poptionReturns the default value of this integer**/
int option_int_def(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, 0);
  fc_assert_ret_val(OT_INTEGER == poption->type, 0);

  return poption->int_vtable->def(poptionReturns the minimal value of this integer**/
int option_int_min(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, 0);
  fc_assert_ret_val(OT_INTEGER == poption->type, 0);

  return poption->int_vtable->min(poptionReturns the maximal value of this integer**/
int option_int_max(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, 0);
  fc_assert_ret_val(OT_INTEGER == poption->type, 0);

  return poption->int_vtable->max(poptionSets the value of this integer option. Returns TRUE if the**/
bool option_int_set(struct option *poption, int val)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(OT_INTEGER == poption->type, FALSE);

  if (poption->int_vtable->set(poption, val)) {
    option_changed(poption);
    return TRUE**
  Returns the current value of this string**/
const char *option_str_get(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);
  fc_assert_ret_val(OT_STRING == poption->type, NULL);

  return poption->str_vtable->get(poptionReturns the default value of this string**/
const char *option_str_def(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);
  fc_assert_ret_val(OT_STRING == poption->type, NULL);

  return poption->str_vtable->def(poptionReturns the possible string values of this string**/
const struct strvec *option_str_values(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);
  fc_assert_ret_val(OT_STRING == poption->type, NULL);

  return poption->str_vtable->values(poptionSets the value of this string option. Returns TRUE if the**/
bool option_str_set(struct option *poption, const char *str)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(OT_STRING == poption->type, FALSE);
  fc_assert_ret_val(NULL != str, FALSE);

  if (poption->str_vtable->set(poption, str)) {
    option_changed(poption);
    return TRUE**
  Returns the current value of this string**/
const char *option_font_get(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);
  fc_assert_ret_val(OT_FONT == poption->type, NULL);

  return poption->font_vtable->get(poptionReturns the default value of this string**/
const char *option_font_def(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);
  fc_assert_ret_val(OT_FONT == poption->type, NULL);

  return poption->font_vtable->def(poptionReturns the target style name of this font**/
const char *option_font_target(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, NULL);
  fc_assert_ret_val(OT_FONT == poption->type, NULL);

  return poption->font_vtable->target(poptionSets the value of this string option. Returns TRUE if the**/
bool option_font_set(struct option *poption, const char *font)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(OT_FONT == poption->type, FALSE);
  fc_assert_ret_val(NULL != font, FALSE);

  if (poption->font_vtable->set(poption, font)) {
    option_changed(poption);
    return TRUE**
  Returns the current value of this video mode**/
struct video_mode option_video_mode_get(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, video_mode(-1, -1));
  fc_assert_ret_val(OT_VIDEO_MODE == poption->type, video_mode(-1, -1));

  return poption->video_mode_vtable->get(poptionReturns the default value of this video mode**/
struct video_mode option_video_mode_def(const struct option *poption)
{
  fc_assert_ret_val(NULL != poption, video_mode(-1, -1));
  fc_assert_ret_val(OT_VIDEO_MODE == poption->type, video_mode(-1, -1));

  return poption->video_mode_vtable->def(poptionSets the value of this video mode option. Returns TRUE if the value
 **/
bool option_video_mode_set(struct option *poption, struct video_mode mode)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(OT_VIDEO_MODE == poption->type, FALSE);

  if (poption->video_mode_vtable->set(poption, mode)) {
    option_changed(poption);
    return TRUE;
  }
  return FALSE;
}
**
  Client option set**/
static struct option *client_optset_option_by_number(int id);
static struct option *client_optset_option_first(void);
static int client_optset_category_number(void);
static const char *client_optset_category_name(int category);

static struct option_set client_optset_static = {
  .option_by_number = client_optset_option_by_number,
  .option_first = client_optset_option_first,
  .category_number = client_optset_category_number,
  .category_name = client_optset_category_name
};
const struct option_set const *client_optset = &client_optset_static;
**
  Virtuals tables for the client options**/
static int client_option_number(const struct option *poption);
static const char *client_option_name(const struct option *poption);
static const char *client_option_description(const struct option *poption);
static const char *client_option_help_text(const struct option *poption);
static int client_option_category(const struct option *poption);
static bool client_option_is_changeable(const struct option *poption);
static struct option *client_option_next(const struct option *poption);

static const struct option_common_vtable client_option_common_vtable = {
  .number = client_option_number,
  .name = client_option_name,
  .description = client_option_description,
  .help_text = client_option_help_text,
  .category = client_option_category,
  .is_changeable = client_option_is_changeable,
  .next = client_option_next
};

static bool client_option_bool_get(const struct option *poption);
static bool client_option_bool_def(const struct option *poption);
static bool client_option_bool_set(struct option *poption, bool val);

static const struct option_bool_vtable client_option_bool_vtable = {
  .get = client_option_bool_get,
  .def = client_option_bool_def,
  .set = client_option_bool_set
};

static int client_option_int_get(const struct option *poption);
static int client_option_int_def(const struct option *poption);
static int client_option_int_min(const struct option *poption);
static int client_option_int_max(const struct option *poption);
static bool client_option_int_set(struct option *poption, int val);

static const struct option_int_vtable client_option_int_vtable = {
  .get = client_option_int_get,
  .def = client_option_int_def,
  .min = client_option_int_min,
  .max = client_option_int_max,
  .set = client_option_int_set
};

static const char *client_option_str_get(const struct option *poption);
static const char *client_option_str_def(const struct option *poption);
static const struct strvec *
    client_option_str_values(const struct option *poption);
static bool client_option_str_set(struct option *poption, const char *str);

static const struct option_str_vtable client_option_str_vtable = {
  .get = client_option_str_get,
  .def = client_option_str_def,
  .values = client_option_str_values,
  .set = client_option_str_set
};

static const char *client_option_font_get(const struct option *poption);
static const char *client_option_font_def(const struct option *poption);
static const char *client_option_font_target(const struct option *poption);
static bool client_option_font_set(struct option *poption, const char *font);

static const struct option_font_vtable client_option_font_vtable = {
  .get = client_option_font_get,
  .def = client_option_font_def,
  .target = client_option_font_target,
  .set = client_option_font_set
};

static struct video_mode
client_option_video_mode_get(const struct option *poption);
static struct video_mode
client_option_video_mode_def(const struct option *poption);
static bool client_option_video_mode_set(struct option *poption,
                                         struct video_mode mode);

static const struct option_video_mode_vtable client_option_video_mode_vtable = {
  .get = client_option_video_mode_get,
  .def = client_option_video_mode_def,
  .set = client_option_video_mode_set
};

enum client_option_category {
  COC_GRAPHICS,
  COC_OVERVIEW,
  COC_SOUND,
  COC_INTERFACE,
  COC_NETWORK,
  COC_FONT,
  COC_MAX
};**
  Derived class client option, inherinting of base clas**/
struct client_option {
  struct option base_option;    /* Base structure, must be the first! */
ategory category;
  enum gui_type specific;       /* GUI_LAST for common options. */

  union {
    /* OT_FONTconst char *const target;
    } font;
    /* OT_VIDEO_MODE type option. */
    struct {
      struct video_mode *const pvalue;
      const struct video_mode def;
    } video_mode;
  };
};

#define CLIENT_OPTION(poption) ((struct client_option *) (poption))

/*
 * Generate a client option of type OT_BOOLEAN (FALSE or TRUE).
 * ocb:   A callback function of type void (*)(struct option *) called when
 *       base_option = OPTION_BOOL_INIT(&client_optset_static,                    \
                                  client_option_common_vtable,              \
                                  client_option_bool_vtable, ocb),{     \
    .boolean = {}

/*
 * Generate a client option of type option *) called when
 *       base_option = OPTION_INT_INIT(&client_optset_static,                     \
                                 client_option_common_vtable,               \
                                 client_option_int_vtable, ocb),{     \
    .integer = {}

/*
 * Generate a client option of type OT_STRINGcb:   A callback function of type void (*)(struct option *) called when
 *       base_option = OPTION_STR_INIT(&client_optset_static,                     \
                                 client_option_common_vtable,               \
                                 client_option_str_vtable, ocb),{NULL}

/*
 * Generate a client option of type option *) called when
 *       base_option = OPTION_STR_INIT(&client_optset_static,                     \
                                 client_option_common_vtable,               \
                                 client_option_str_vtable, ocb),{}

/*
 * Generate a client option of type OT_FONToption *) called when
 *       base_option = OPTION_FONT_INIT(&client_optset_static,                    \
                                  client_option_common_vtable,              \
                                  client_option_font_vtable, ocb),{     \
    .font = {target = otgt,}

/*
 * Generate a client option of type OT_VIDEO_MODE_width, odef_height:  The default values for this client option.
 * ocb:   A callback function of type void (*)(struct option *) called when
 *        the option changed.
 */
#define GEN_VIDEO_OPTION(oname, odesc, ohelp, ocat, ospec, odef_width,      \
                         odef_height, ocb).base_option = OPTION_VIDEO_MODE_INIT(&client_optset_static,              \
                                        client_option_common_vtable,        \
                                        client_option_video_mode_vtable,    \
                                        ocb),{     \
    .video_mode = {VIDEO_MODE(odef_width, odef_height)}

/* Some changed callbacks. */
static void reqtree_show_icons_callback(struct option *poption);
static void view_option_changed_callback(struct option *poption);
static void mapview_redraw_callback(struct option *poption);
static void voteinfo_bar_callback(struct option *poption);
static void font_changed_callback(struct option *poption);

static struct client_option client_."),
                  COC_INTERFACE, GUI_SDL, FALSE, NULL),
  GEN_VIDEO_OPTION(gui_sdl_screen, N_("Screen resolution"),
                   N_("This option controls the resolution of the "
                      "selected screen."),
                   COC_INTERFACE, GUI_SDL, 640, 480, NULL),
  GEN_BOOL_OPTION(gui_sdl_do_cursor_animation, N_("Do cursor animation"),
                  N_("If this option is disabled, the cursor will be "
                     "always displayed as static."),
                  COC_INTERFACE, GUI_SDL, TRUE, NULL),
  GEN_BOOL_OPTION(gui_sdl_use_color_cursors, N_("Use color cursors"),
                  N_("If this option is disabled, the cursor will be "
                     "always displayed in black and white."),
                  COC_INTERFACE, GUI_SDL, TRUEclient_options_num = ARRAY_SIZE(client_options);poption)poption##_max =                         \
      client_options + client_options_num;                                  \
  struct client_option *client_##poption = client_options;                  \
  struct option *poption;                                                   \
  for (; client_##poption < poption##_max; client_##poption++) {            \
    poption = OPTION(client_##poption);**
  Returns the nex**/
static struct client_option *
    client_
    client_options + client_options_num**/
static struct option *client_optset_option_by_number(int id)
{
  if (0 > id || id > client_options_num)  {
    return NULL;
  }
  return OPTION(client_options + id**/
static struct option *client_optset_option_first(void)
{
  return OPTION(client_option_next_valid(client_options)Returns the number of client option categories**/
static int client_optset_category_number(void)
{
  return COC_MAX**
  Returns the name (translated) of the option class**/
static const char *client_optset_category_name(int category)
{
  switch (category%s: invalid option category number %d.",
            __FUNCTION__, category*
  Returns the number of this client**/
static int client_option_number(const struct option *poption)
{
  return CLIENT_OPTION(poption) - client_**
  Returns the name of this client**/
static const char *client_option_name(const struct option *poption)
{
  return CLIENT_OPTION(poption)->name**
  Returns the description of this client**/
static const char *client_option_description(const struct option *poption)
{
  return _(CLIENT_OPTION(poption)->descriptionReturns the help text for this client**/
static const char *client_option_help_text(const struct option *poption)
{
  return _(CLIENT_OPTION(poption)->help_textReturns the category of this client**/
static int client_option_category(const struct option *poption)
{
  return CLIENT_OPTION(poption)->category**
  Returns TRUE if this client option can be modified**/
static bool client_option_is_changeable(const struct option *poption)
{**
  Returns the nex**/
static struct option *client_option_next(const struct option *poption)
{
  return OPTION(client_option_next_valid(CLIENT_OPTION(poption) + 1)Returns the value of this client option of type **/
static bool client_option_bool_get(const struct option *poption)
{
  return *(CLIENT_OPTION(poption)->boolean.pvalueReturns the default value of this client option of type **/
static bool client_option_bool_def(const struct option *poption)
{
  return CLIENT_OPTION(poption)->boolean**
  Set the value of this client option of type OT_BOOLEAN.  Returns TRUE if
  the**/
static bool client_option_bool_set(struct option *poption, bool val)
{
  struct client_option *pcoption = CLIENT_OPTION(poption);

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

  *pcoption->boolean.pvalue = val**
  Returns the value of this client option of type **/
static int client_option_int_get(const struct option *poption)
{
  return *(CLIENT_OPTION(poption)->integer.pvalueReturns the default value of this client option of type **/
static int client_option_int_def(const struct option *poption)
{
  return CLIENT_OPTION(poption)->integer**
  Returns the minimal value for this client option of type **/
static int client_option_int_min(const struct option *poption)
{
  return CLIENT_OPTION(poption)->integer.min**
  Returns the maximal value for this client option of type **/
static int client_option_int_max(const struct option *poption)
{
  return CLIENT_OPTION(poption)->integer.max**
  Set the value of this client option of type OT_INTEGER.  Returns TRUE if
  the**/
static bool client_option_int_set(struct option *poption, int val)
{
  struct client_option *pcoption = CLIENT_OPTION(poption);

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

  *pcoption->integer.pvalue = val**
  Returns the value of this client option of type **/
static const char *client_option_str_get(const struct option *poption)
{
  return CLIENT_OPTION(poption)->string.pvalue**
  Returns the default value of this client option of type **/
static const char *client_option_str_def(const struct option *poption)
{
  return CLIENT_OPTION(poption)**
  Returns the possible string values of this client option of type
  **/
static const struct strvec *
    client_option_str_values(const struct option *poption)
{
  return (CLIENT_OPTION(poption)->string.val_accessor
          ? CLIENT_OPTION(poption)->string.val_accessor()**
  Set the value of this client option of type OT_STRING.  Returns TRUE if
  the**/
static bool client_option_str_set(struct option *poption, const char *str)
{
  struct client_option *pcoption = CLIENT_OPTION(poption);

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

  fc_strlcpy(pcoption->string.pvalue, str, pcoption->string.size**
  Returns the value of this client option of type OT_FONT**/
static const char *client_option_font_get(const struct option *poption)
{
  return CLIENT_OPTION(poption)->font.pvalue**
  Returns the default value of this client option of type OT_FONT**/
static const char *client_option_font_def(const struct option *poption)
{
  return CLIENT_OPTION(poption)->font**
  Returns the target style name of this client option of type OT_FONT**/
static const char *client_option_font_target(const struct option *poption)
{
  return CLIENT_OPTION(poption)->font.target**
  Set the value of this client option of type OT_FONT.  Returns TRUE if
  the**/
static bool client_option_font_set(struct option *poption, const char *font)
{
  struct client_option *pcoption = CLIENT_OPTION(poption);

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

  fc_strlcpy(pcoption->font.pvalue, font, pcoption->font.size**
  Returns the value of this client option of type OT_VIDEO_MODE**/
static struct video_mode
client_option_video_mode_get(const struct option *poption)
{
  return *CLIENT_OPTION(poption)->video_mode.pvalue**
  Returns the default value of this client option of type OT_VIDEO_MODE**/
static struct video_mode
client_option_video_mode_def(const struct option *poption)
{
  return CLIENT_OPTION(poption)->video_mode**
  Set the value of this client option of type OT_VIDEO_MODE.  Returns TRUE
  if the**/
static bool client_option_video_mode_set(struct option *poption,
                                         struct video_mode mode)
{
  struct client_option *pcoption = CLIENT_OPTION(poption);

  if (0 == memcmp(&mode, pcoption->video_mode.pvalue,
                  sizeof(struct video_mode))) {
    return FALSE;
  }

  *pcoption->video_mode.pvalue = mode**
  Load the option from a fil**/
static bool client_option_load(struct option *poption,
                               struct section_file *sf)
{
  fc_assert_ret_val(NULL != poption, FALSE);
  fc_assert_ret_val(NULL != sf, FALSE);

  switch (option_type(poption)) {
  case OT_FONTfont_set(poption, string));
    }
  case OT_VIDEO_MODE:
    {
      struct video_mode mode;

      return (secfile_lookup_int(sf, &mode.width, "client.%s_width",
                                 option_name(poption))
              && secfile_lookup_int(sf, &mode.height, "client.%s_height",
                                    option_name(poption))
              && option_video_mode_set(poption, mode));
    }
  }
  return FALSE;
}
**
  Server options variables**/
static char **server_options_categories = NULL;
static struct server_option *server_options = NULL;

static int server_options_categories_num = 0;
static int server_options_num = 0;
**
  Server option set**/
static struct option *server_optset_option_by_number(int id);
static struct option *server_optset_option_first(void);
static int server_optset_category_number(void);
static const char *server_optset_category_name(int category);

static struct option_set server_optset_static = {
  .option_by_number = server_optset_option_by_number,
  .option_first = server_optset_option_first,
  .category_number = server_optset_category_number,
  .category_name = server_optset_category_name
};
const struct option_set const *server_optset = &server_optset_static;
**
  Virtuals tables for the client options**/
static int server_option_number(const struct option *poption);
static const char *server_option_name(const struct option *poption);
static const char *server_option_description(const struct option *poption);
static const char *server_option_help_text(const struct option *poption);
static int server_option_category(const struct option *poption);
static bool server_option_is_changeable(const struct option *poption);
static struct option *server_option_next(const struct option *poption);

static const struct option_common_vtable server_option_common_vtable = {
  .number = server_option_number,
  .name = server_option_name,
  .description = server_option_description,
  .help_text = server_option_help_text,
  .category = server_option_category,
  .is_changeable = server_option_is_changeable,
  .next = server_option_next
};

static bool server_option_bool_get(const struct option *poption);
static bool server_option_bool_def(const struct option *poption);
static bool server_option_bool_set(struct option *poption, bool val);

static const struct option_bool_vtable server_option_bool_vtable = {
  .get = server_option_bool_get,
  .def = server_option_bool_def,
  .set = server_option_bool_set
};

static int server_option_int_get(const struct option *poption);
static int server_option_int_def(const struct option *poption);
static int server_option_int_min(const struct option *poption);
static int server_option_int_max(const struct option *poption);
static bool server_option_int_set(struct option *poption, int val);

static const struct option_int_vtable server_option_int_vtable = {
  .get = server_option_int_get,
  .def = server_option_int_def,
  .min = server_option_int_min,
  .max = server_option_int_max,
  .set = server_option_int_set
};

static const char *server_option_str_get(const struct option *poption);
static const char *server_option_str_def(const struct option *poption);
static const struct strvec *
    server_option_str_values(const struct option *poption);
static bool server_option_str_set(struct option *poption, const char *str);

static const struct option_str_vtable server_option_str_vtable = {
  .get = server_option_str_get,
  .def = server_option_str_def,
  .values = server_option_str_values,
  .set = server_option_str_set
};**
  Derived class server option, inherinting of base clas**/
struct server_option {
  struct option base_option;    /* Base structure, must be the first! */

  char *name;                   /* Short name - used as an identifier */
  char *description;            /* One-line description */
  char *help_text;              /* Paragraph-length help text */
  unsigned char category;
  bool desired_sent;
  bool is_changeable;
  bool is_visible;

  union {
    /* OT_BOOLEAN type option. */
    struct {
      bool value;
      bool def;
    } boolean;
    /* OT_INTEGER type option. */
    struct {
      int value;
      int def, min, max;
    } integer;
    /* OT_STRING type option. */
    struct {
      char *value;
      char *def;
    } string;
  };
};

#define SERVER_OPTION(poption) ((struct server_option *) (poption))

static void desired_settable_option_send(struct option *poption);
**
  Initialize the server options (not received yet)**/
void server_options_init(void)
{
  fc_assert(NULL == server_options_categories);
  fc_assert(NULL == server_options);
  fc_assert(0 == server_options_categories_num);
  fc_assert(0 == server_options_numFree one server**/
static void server_option_free(struct server_option *poption)
{
  if (OT_STRING == option_type(OPTION(poption))) {
    if (NULL != poption->string.value) {
      FC_FREE(poption->string.value);
    }
    if (NULL != poption->string.def) {
      FC_FREE(poption->string.def);
    }
  }
  if (NULL != poption->name) {
    FC_FREE(poption->name);
  }
  if (NULL != poption->description) {
    FC_FREE(poption->description);
  }
  if (NULL != poption->help_text) {
    FC_FREE(poption->help_text**
  Free the server options, if already received**/
void server_options_free(void)
{
  int i;

  /* Don't keep this dialog open. */
  option_dialog_popdown(server_optset);

  /* Free the options themselves. */
  if (NULL != server_options) {
    for (i = 0; i < server_options_num; i++) {
      server_option_free(server_options + i);
    }
    FC_FREE(server_options);
    server_options_num = 0;
  }

  /* Free the categories. */
  if (NULL != server_options_categories) {
    for (i = 0; i < server_options_categories_num; i++  cEJ ]GEFka>GbYDc@KJD%GGJ%@LJGWF=DG<F[Ebd$SS]6D8g|F.FoIM&L8FD
G<O#G`V_I5DZEDWI5JBZ:F[E<^1J DG].DOF-GbDk]]XG&\%NLLXTFnVD6WLF@UDE!HsDJL!G&ET@PCD9FEUEaGEaEVIgETFbEEEKE<F3DcJ+P9NPP9FFbTkFDcG?@VgEPkGQ@jC]5NZG6GtGtLDhGtDDI|EaG6MIGEaFkGN{ZLE\S$JsG	H2GG$F1IIGI+DPFcV+MM4Fc[E#EI+EUDXhIEH*K+RiDDjETIQG=E1DdDuDvG&IGN(HZGbI:JHI;GbcIGtM2HZG@E&D
XH*NwiGGMwH*E+JFF9KlDYKhHcFcHHGqQWYJC[LKlYJ[H_M5KOJ8D\R9KtEO2NmIbI+LDD[@`apGHkI/DAErDCM@OOFRcWD-G<MnG
fUKtKlEPdCF{E6G=n@amDYiJ-DJjDH?DlJ{I([3c<GTHVs@LDJEJ-HL~HDnM-F\G IlL"DnEsS.EJ2G:H*XJJ RJLlYgK FVK4FiTOTdIA[+UHJDDIHDG$RfL}O	IU#KIwKPHxF*S1XDHIYDL_WJLc<FvFwJjT]FJjH9MrQPH\X@Bhu,ID^D*XHMPGKUW=J$J=HD~K=HmFH%KADFiFZDGFKDvDGE=D!HuGGE!DHuDCKYEiDEI)D5DeIGJ1E<JMrLlL1LaG]HKOH*GJ2MrD~M%S8NWKlb)EOQ@_hHDxEvECDz@\zVDS4D7D@H5PKG=EcFeVtFeFTSkEJHDDGRE8J:QoGIAG?H2GIEy@WoJ=NmD>GeF.@Q M_EhGbEUDTHGG?HzD~H?FmQDE=@_hH:INB@RbDE@DF[=MhQS@`XE/HSs@ODDhNJF/Q^^@a H;DQ"H8@P"MeWwD9DhHJNvIwJc`X#cHJ@QBYqGK@WNrE F/MUG?VeO$@fB@lFV"E D9KFk@aBKZ@ KZ@BKZ@aBDD[GP@IV@BIV@aBIw@~FHJ@BJ@[hDdD{ENGD@WEOQLp@BO9@jX@jLL;RIH j`oWt@cFxUFE1DJF@j#Eh@CMp@cQE;@+@JL@UiEq*QoKIG\@oZDMV}FyDuLxrKQGOpE1N#IG7DqDuDiOVD	GG?Fd@MGq@i[DC@EIMx@@t@E!K#@a E0W@ R@CNKT@b"@"@K*D@sH@}DC\Dh@I2D	VIGKEdVrJoYn@T@pF@qD@EIL\@@{#@E!J"@a F]GvE^1@g{H;UTEE;jFz@sG#@}D\Oe@F5FF^XRDgxSRDgTqDHFsDEqFBF:@ArHDDRFHED<DeG@DQIMEG[ID+KDhDmFGDEG
E(I$HAH0DnE#F"H0E~EmMDEDD.EFDKDMEzDEzE'DJH0D
EMEKFxEKLfMD/E8LfFlPwFjM$O[ElH5PwDBD \KE DmG?]}Hr]IrF@cG]D IHoDI-Gk@G@`E6J^GE6@HF~GBHF E#FbD"D3DGY@aD-JsEUDnDzT9OLeGTD9EFaEI'DFPaIrDzDfE J_H[IWFQHHDBHCGMIGFeP?GbKIIE~D=K>I>GIJWFxKxDJOiQAE~D%K?FI@IFFnKxJWOdFM]DLRD@EWEED GbEgEODH'K0GqF^D9DD_K0H&GML#EWMUG/DL#FxL#DIQfV~QfE[#O}HwRGXJ*O}P@O}L\O}FtJeI&FD1FEYKIKYVhFxJkJ;JDEEWHqDLHqD!IHuGDuH.D<FFDuK"IFnGXOIDF&LHFEhLDQE*E<DDFDEK0GYFDFZDEWGSfDG(a8N(I4DJDE=LEJbDZK:E(FSE(GwE(EdE_GKrEpF.GE^FSINoEpJ|G&EGQwETH<OGoFxJJeM"K^GgIKGzL_IXoNwO$P JE@I5RDyD<G]RcH]EdEQE4KHsI-PwK_L%EMGJ*EDJ|I
D(J K+F"EzEQ:HFEDzIMF/HnEDmJzEKCE*E9E"KyKD!EoEIWMEMF7H1RxHxGDHHD|GGDJ U_O[E_7R_EdEu@kF@GiF @-9D@sjFCHTGMDUIbTEaNR@H&HFE)JULD9FRYa_O{JQXk*JRGzK:YdS(I7@@rEkDwDDlDu@EfNOD-Fo[jFgM5DMIPaE#FpRFOFoS;P4FoNnDqHBDFI:HD[DmnO}DIEPH`I8@@PF1NTD~EI8DZIoOFHKEP E:IuJ(E:F1X?cmE:F1SDE_KPuDhE[D(FdDGNEF_I(@IfWKFDl@YmDrJMAMG2E(O?JFAL#SEZE RRJUF_y~YdF|EhODZ*da+I1g^qwO{DO=M2X]_qa+LW]`S@FiEDD?Gn@D!]ZjPbRdE5IN@Z)FDVH;D#Da^FvFCFDH`EwQrD RSpM5P%GkJaDBF/DEHaGkDiFGDDIYDBS8D6FGI+EAQ8F0D=JPH)X3FvGQEEDndmMD2P]DErI>GGF3HJE#M'F+[0P5Zw@EkHAHIDFKD|DzDK{IWDF"DzDIE]D_D)DAD9E$D^P9GbH[DpDEDm@LDLeDGYJPHSJ^HyDlDTENG-KHD H_DnHkDaEGCFjLDXD*PsFrErRPsIHK$DnF%EaF.DaHFKLDD'I`D3JpO*H|D_G@M$S	R<UwGjQ:Z0[uEH^QsEDKD+I[EzGLKqK$@IgEIIEzFPEE@v7Eh@D!YwD@EWDEJBGp@~)DxE0DZJ:E7DYwIF/Dx`>F/J EUIXb;O:GJ:ZwO:J1FLd@@$e`M/JJ+E_N1K[H[0F/O:\uDXEyM,FqDaGjL[AD-EZF>[]DDDbGY]K$S@K}H|M	M-PHHKJF~DrJ8DCH@F$T4K/o@A%pl@D"T4PQ*I:Y	@mOGT4H-UGaNfYw@DO$F2EZE H:@]jFODD~Iw@LHL-O3@KDOPZfGDlKNNkDXFsQ'DQD/DQQhHqG}GAEhEAYyU
FE~Gf[7HAKCHrH!FNF<M GBK+EKDHOGfFCE\HbIEDJZI%GfEZIHwJzH+FZFFBM@K4G:E[IDFuD$DXI=D'EPE7J5IOENNAGPI^LHxI.Dq;ET}qI1F(G$HI.KgQKII2GTZD[FJDKD]DMTHF$HFG$F$Gv]	E~FViRJqSR	HQ&F @PMG1@R_ZZJHv!H&VTD&W#DUD(GFkJdEEmE	Z*FNE],FNGLe@MDKJNE&GPEuNHhFE@E0EW<HBJ^EDCD#D
HSPaGcD]yIeIkKIKH'HxJzG UUMHh^AL&GPI=GPIcP=I%HHxGPHL&G]I=G]UoD!QJ}G]jsLICNh@LG	~kNHxONYL{OoP8]IZ^FF$FKozDUD?eUIvM YL8_)P,GcHWN)DDXDxG\DgIILRE2XqL OsOE#G1PuXpT:JqU)LEmMP<@T3X
DEyO%FEFiHDFEJME@jNHBLeEe8MFHf1EFGtw.D|NG(k EIYbHM%FPMOIQ@HMDKZNd@Q0]<V}\FkG1UhvHF+GqL G1MAGIqIuOPkbUHdH_xHxI^PkXWkbLe!qKLsS8S/|s@L1Y)WMIAFLJ*]wT)JL
@C?E$D;@T(SwF3@XL-@pEHF3ewoNFvG F%DpDDF$EiLeGaII:Y1S FZ~]FGELDqFgHkR2X7GnFvD_GcF$H`G
L'N/D`GaTE"DFH2HI>SHE'G:I%Etd9SNMoS LMTX^DGILM
KR;Z0@HdL@
xYXP GCEMMeU[	ID\DYY;[L*@yEuFgGeDGZDDDFbGGDLD~D`GHEH@D~GWXOAK K+n*\&GHxJ%KrDFK&_HKrU2RK}l{EPR:NSVbH`FGEeTK$LDhOc_HLU2P4GxHh@QQDmDJ@L`uNWEiUhE@`DRZwF2ED	@yD|K}V E@DD	KlZWDM;ER@6@@_]b9@HTE0I/HJ9H|DEE)E7DG_DMGDD3DeD7F H}DbFGD%EgD%E7F DdE4DQ@PEfL)UNTVONGUIH'OcWI9MIZ%EKIICDAJRLrDpH9LGNLGCD,JFHPDdJkD#D0EEDxKEEIX`HF MgH!L7ENUH$GQG-J(GGd~RH E!DMH[L4IFJHjU[EHD7H/M{ON%DFfFvYeMFZjVODlItGRD8DF)F2JO6[4E(D}HbIsGnE%HDV-MWDT8b5DT8J(E>E4gLOOfOOLADDEHJdGmJGBLYFBI$GX[WF IPOpD+JEV G\EaM8DQR*D6EaD6DCE[D#EcFDeM DF1K]E"D$ISEEEX&IKHxD9FxDsLdQFN|M` G7UjFYE/N}WHbZ@NFHD5@UM[EJe R_%JzLJGD#F[5WGElEE#IOZM}iX"UsI{U-T	IPI{P:pR{XXx\5M|[)dSdK[Pk[5}NWW)@XL\^sEl@dRJ0G
J/DK%K/N4QqOgD:L(E^4] ^hKvFv{OJ s'II'TjGI[NlGVJSXP<FGvI~FQwQ<ED	JlN{G@|]^M`H4bDBUH@ETMIiL@@M~O{OmU]FrI<FK`PxH`TvGE~EaFbDPF!F9ESDUe2HEEtV @X:FGg@h_QR(D|WGD2NI
MeX-MFQ$H(D?H|D`DX,djX`jWGL^K+GEE"R{GUPEDpEaFEwFVS:V0kCWGMxLTPK-KEI]DsK-aQbD|H9E0F)Y'LDD%EFK~KuE}M\J"D.MJqQtKbPNMRKM2HNG:MPGmSWQ:DKFNDpFyDSNK+F<EH=GODaIdVNa9O@KSE&DVDIFmIT;TNvFEIkHEGGFPN	`'@QN@nSOKN
T9LlE6X7FV\KC\7QVXED[!GSU;VrKa@QHD0E5IYJZH=@D(ZDFYF|E.DL]hFCFHp@HeO;OGEhD`D D2RhEYD}E%D
E.@W EG"FE0fyHrD6D GDDDSGaE%D FSFI[FE]DH@W8IHDaFQE[S6@ZfEnHCF]fyJ@rWLE]I"@gnE%fyIK?@c7Dl@_EElm`NG KSE{OlFhJ?E"H,ElFR3Q#Eu) {
 if (NULL != server_options_categories[i]  FC_FREE(;}_num = 0}
}

/*
  Allo the  and .
/
void handle_setting_control(struct packet *)
int i;

  /* This should be received only once. */
  fc_assert_ret=00 <-> =fc_ca,sizeof(*  for (i i <; i++/* NB: Translnow[i] =strdup(_(y_nam}Returnsclienttype equivaltostatic e_sset_to(switch (case SSET_BOOL:r OEANINTINTEGERSTRING
  log_error("Unsupported: %d.",-1; ainfo*pbyberid *psSERVER_OPTION(bool needinitializaFALSEgui_removeaddconst char *string!= ->common_vtablot ed yetset = &_TRU} elseT%snged?",Let's tryretfree(memset, 0->is_visibreakintstrFOO%s (%d) not ",foVIDEO_MODEvideo_mode#defin(target,ing)\) { ;0trcmp= short_helpdescriextra_texean.valuval0defdefault_ntegermiminaxaxstrvaldefun!ired_sent&&isrunn)Osend our privwe are * on aked l, i.e. stabywith"S New Game" button.Do overridthatalready satogamloadedtndUpdGUIaddad!unext validporurrguiid+while<&& !++?:)associad> id ||> firs(( oame (td)y||>[] - canmodified+ 1gedefdefS
 ,=ndt_printf("/%s %d? 1 :minimauemiaxax<||>poss
 trvecs Message s: ms_where[E_LAST];These cas, excepits easierdo iwanone[E_IMP_BUY,SOLDUNITLOST_ATTWINGAME_STARTNA_SELECTECITY_BUINEXT_YEARPRODUCCHANGEDMAY_SOON_GROWWORKLISAI_DEBUGut_CHAT_MSGERRORONNELOGSETTINGVOTRESOLVABORTEDallFATALCRIPTMW_MESSAGESARRIZE()i]MW_OUTPUTall |POPUPevent
...   Load usfuncpecnum.h (seso.h)_f*prefix,_p!sec_lookup( &, ".count"/* vers2.2rds in 2.1oldCANTVEDISORDEFAMIN_FEARTHAQUENORMUKCMA_RELEASGRAN_THROTTLETRANSFEUPRISVIL_WAANARCHFIRSTTACEW_GOVERNMENLOW_ON_FUNDSPOLLUREVOLT_DONPACESHIPMPLOMAT_BRIBIC_INCIDESCAPMBASSFAILTPOISONSABOTAGTHEFENEARAVAN_ABROADCAST_REPOENDESTROYTURN_BELLLOBAL_ECOUKHUT_BARBG_KILMERCLTECAT_GAILEARREALLIANCBROKECFIRPEASH_VISDEFECVEUPGRADRELOCAWONDEROBSOLEOPPWILL_BECBAD_COMMAN_WALize_t  "%s._%02, ipstr%d."Corruin %s:),tin =cmp!E skip=Savegin();!iniDoes heavy lifup as_cma_cm_parame"cma.
 putero_surplus[o0,mini, ofactor}rre_happyreq_w_disotmafec&p =get(Isenum(_("If you ," \"_of\""
ld rcOLD_FILME ".civrc"civ--rc-%d.%d"MAJORVER
#if IS_DEVELIN(
#
#endifwappeared (2.2)22memai.  Usuallydsav
  Ie, baon CIV env var,home dir. (or ainfig.hOrproblem_buffer[256]getenv("zlcpy{user__dir_("Canfindrey"n"%s/",verbose("iChecklaswetoounajor,otat buf ;--;?:0);at&buf!=||normalDidn''%s', "rominstead.en+ 199Looks enough biryolDhash_*s_sfbuf[64y_ *iebdelete_all_(sf, "exist!, pENTRYbuf, "STvariaf \%s\",, )(.keyursval,*||=us/* Rereplacaachdiopop=data explicitlyityplayer re dialogce "_dlg_"ity",;!=;n&FT_TO_PTRFCINT(on Ied whegto_SED/* P1colum[i].tagshow_(i*_ptRUNNING*, &anyrulfictafui, beforemaUnfortunately,measdise*ullcre(sadebug("E:\n/*new(f/* FIXME: betf0, FZ_PLAIN_("failed,wrio")destroy/* acret"lazy. TODO: makavpassword%s.xitullscreenall}
ad If does, doe keep-; ifglobal_workwindow_nd(ftc_a.width_heigh%s_ okImoduluinewf,fcm,>axX%%d,is"our[%d; %d],o*(*) &(CLIENT)/* Haos_s)0In,/*oFreCallba mapview graphics(redrawnvas__map_eqtw iisalcuwilossearchen iopgatechpopdownny menuoebaot_barENDREP
DELTA 17169 43664 2623
SVN  wY7P t  C qs L{ y^ Cn uK  W.width, gui_sdl_screen. resize_window_callback);
  option_var_set_callback(gui_sdl_screen,.width, gui_sdl_screen..width, gui_sdl_screen..width, gui_sdl_screen..width, gui_sdl_screen.height,
                     SDL_SWSURFACE | SDL_ANYFORMAT);
      #else
      set_video_mode(gui_sdl_screen.width, gui_sdl_screen..width, gui_sdl_screen.ENDREP
id: i4.5ck.r17283/66156
type: file
pred: i4.5ck.r17229/1407
count: 91
text: 17283 12458 782 9824 c017a9def16b9240e15bb3745c3ffe83
props: 11044 512 111 0 e5ad8d36ef6bfd356bb06d6f3ece066f
cpath: /trunk/client/options.h
copyroot: 15280 /trunk

id: 4js.5ck.r17283/66397
type: file
pred: 4js.5ck.r17042/127567
count: 3
text: 17283 13267 770 24541 092f3af1dbaa63bc6842be9472e96563
cpath: /trunk/client/gui-gtk-2.0/optiondlg.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file zu.5ck.r16998/74500
K 8
canvas.c
V 25
file 2y6.5ck.r16281/14174
K 8
canvas.h
V 23
file 2y7.0.r10096/14437
K 16
caravan_dialog.c
V 26
file 376.5ck.r17122/359334
K 10
chatline.c
V 25
file zw.5ck.r17122/363543
K 10
chatline.h
V 24
file zx.5ck.r16063/47311
K 15
choice_dialog.c
V 26
file 377.5ck.r17122/362877
K 15
choice_dialog.h
V 23
file 378.0.r12670/99360
K 9
citydlg.c
V 22
file zy.5ck.r17251/229
K 9
citydlg.h
V 20
file zz.0.r5493/6351
K 9
cityrep.c
V 23
file 100.5ck.r17171/856
K 9
cityrep.h
V 22
file 101.0.r9098/11480
K 8
cma_fe.c
V 25
file 102.5ck.r17258/18602
K 8
cma_fe.h
V 25
file 103.5ck.r15813/67548
K 8
colors.c
V 26
file 104.5ck.r17122/362357
K 8
colors.h
V 24
file 105.5ck.r16180/3087
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 26
file 108.5ck.r17122/361305
K 9
dialogs.h
V 22
file 109.0.r11212/7101
K 10
diplodlg.c
V 24
file 10a.5ck.r17266/4737
K 10
diplodlg.h
V 23
file 10b.0.r9577/108261
K 17
diplomat_dialog.c
V 26
file 36n.5ck.r17122/361568
K 9
editgui.c
V 26
file 4ej.5ck.r17122/359599
K 9
editgui.h
V 25
file 4ek.5ck.r15355/70937
K 10
editprop.c
V 26
file 4el.5ck.r17122/363338
K 10
editprop.h
V 24
file 3bj.5cl.r15704/4438
K 10
embedggz.c
V 26
file 4gq.5ck.r17122/363137
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 26
file 10d.5ck.r17122/363800
K 9
gotodlg.c
V 24
file 10e.5ck.r16899/8280
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 25
file 10i.5ck.r16973/10277
K 12
gtkpixcomm.h
V 22
file 10j.0.r10800/1606
K 10
gui_main.c
V 26
file 10k.5ck.r17122/359071
K 10
gui_main.h
V 25
file 10l.5ck.r16281/14952
K 11
gui_stuff.c
V 26
file 10m.5ck.r17122/359801
K 11
gui_stuff.h
V 25
file 10n.5ck.r16281/15466
K 11
happiness.c
V 23
file 10o.5ck.r17252/540
K 11
happiness.h
V 23
file 10p.0.r9577/106064
K 9
helpdlg.c
V 26
file 10q.5ck.r16929/319741
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 26
file 10u.5ck.r17122/362616
K 10
inteldlg.h
V 23
file 2d1.0.r9577/108626
K 9
mapctrl.c
V 26
file 10v.5ck.r16929/319486
K 9
mapctrl.h
V 25
file 10w.5bk.r14157/11089
K 9
mapview.c
V 23
file 10x.5ck.r17211/256
K 9
mapview.h
V 23
file 10y.0.r12881/17128
K 6
menu.c
V 26
file 10z.5ck.r17122/360320
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 24
file 112.5ck.r16973/9506
K 12
messagewin.h
V 23
file 113.0.r10108/19424
K 11
optiondlg.c
V 25
file 4js.5ck.r17283/66397
K 11
optiondlg.h
V 25
file 114.5ck.r17037/29773
K 7
pages.c
V 25
file 2pi.5ck.r17209/10299
K 7
pages.h
V 25
file 2pj.5ck.r16532/16664
K 8
plrdlg.c
V 26
file 115.5ck.r16929/319999
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 23
file 118.5ck.r17268/464
K 10
repodlgs.h
V 24
file 119.5ck.r17115/7471
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 26
file 11c.5ck.r17042/129784
K 14
spaceshipdlg.h
V 23
file 11d.0.r9577/110090
K 8
sprite.c
V 26
file 2y8.5ck.r16578/445568
K 8
sprite.h
V 23
file 2y9.0.r10141/29270
K 11
theme_dlg.c
V 26
file 47d.5ck.r17122/361837
K 8
themes.c
V 26
file 34x.5ck.r17122/358813
K 13
tileset_dlg.c
V 25
file 45i.5bk.r13968/60424
K 14
voteinfo_bar.c
V 26
file 4h8.5ck.r17122/360837
K 14
voteinfo_bar.h
V 25
file 4h9.5ck.r16063/46876
K 7
wldlg.c
V 26
file 11e.5ck.r16929/320462
K 7
wldlg.h
V 25
file 11f.5ck.r16285/86707
END
ENDREP
id: zs.5ck.r17283/70373
type: dir
pred: zs.5ck.r17268/4494
count: 1310
text: 17283 66600 3760 3760 84753e9de71ca05e96f6dd8cd3d8686d
props: 11108 11912 79 0 480bb3268560e84c2d6c8376c422c65e
cpath: /trunk/client/gui-gtk-2.0
copyroot: 15280 /trunk

id: ar.5ck.r17283/70619
type: file
pred: ar.5ck.r17229/1646
count: 36
text: 17283 0 12431 16777 701afa6254a6efea8b4dd3581154f9e7
props: 10897 2598 111 0 7c94b769c2c0998a2747d858cb1e860f
cpath: /trunk/client/gui-xaw/optiondlg.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.r17218/12618
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 25
file 9u.5ck.r17122/373441
K 10
chatline.h
V 21
file 9v.0.r2187/10435
K 9
citydlg.c
V 25
file 9w.5ck.r17122/368856
K 9
citydlg.h
V 20
file 9x.0.r2187/8309
K 9
cityrep.c
V 25
file 9y.5ck.r17122/370887
K 9
cityrep.h
V 20
file g1.0.r5489/4916
K 8
cma_fe.c
V 25
file 2ei.5ck.r17258/22883
K 8
cma_fe.h
V 21
file 2ej.0.r6908/4433
K 8
colors.c
V 25
file a2.5ck.r16578/453349
K 8
colors.h
V 21
file a3.0.r10532/9312
K 12
connectdlg.c
V 25
file a4.5ck.r17122/373693
K 12
connectdlg.h
V 21
file a5.0.r2187/12228
K 9
dialogs.c
V 25
file a6.5ck.r17122/371141
K 9
dialogs.h
V 21
file a7.0.r10882/3191
K 10
diplodlg.c
V 25
file a8.5ck.r17122/371663
K 10
diplodlg.h
V 20
file a9.0.r2187/7955
K 17
diplomat_dialog.c
V 26
file 37p.5ck.r17122/371397
K 9
finddlg.c
V 25
file aa.5ck.r17122/372680
K 9
finddlg.h
V 22
file 2dk.0.r5989/31562
K 9
gotodlg.c
V 25
file ab.5ck.r17122/369111
K 9
gotodlg.h
V 21
file ac.0.r1888/21069
K 10
graphics.c
V 25
file ad.5ck.r17122/371918
K 10
graphics.h
V 21
file ae.0.r10789/6338
K 10
gui_main.c
V 25
file bm.5ck.r17122/369877
K 10
gui_main.h
V 22
file bn.0.r11408/10219
K 11
gui_stuff.c
V 24
file bo.5ck.r17127/30848
K 11
gui_stuff.h
V 21
file bp.0.r4964/56392
K 9
helpdlg.c
V 25
file af.5ck.r17122/372934
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 25
file ai.5ck.r17122/372171
K 10
inteldlg.h
V 23
file 2dl.0.r10108/22972
K 9
mapctrl.c
V 25
file aj.5ck.r16929/327222
K 9
mapctrl.h
V 21
file ak.0.r10532/9667
K 9
mapview.c
V 25
file al.5ck.r17122/369365
K 9
mapview.h
V 24
file am.5bk.r13912/46304
K 6
menu.c
V 25
file an.5ck.r17122/370385
K 6
menu.h
V 24
file ao.5ck.r16824/42452
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.r17283/70619
K 11
optiondlg.h
V 24
file as.5ck.r16998/79026
K 7
pages.c
V 26
file 2qm.5ck.r17122/370134
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 25
file aw.5ck.r17122/373187
K 8
plrdlg.h
V 20
file g4.0.r5489/3140
K 10
ratesdlg.c
V 25
file ax.5ck.r17122/372425
K 10
ratesdlg.h
V 22
file 2dn.0.r5989/31227
K 10
repodlgs.c
V 24
file ay.5ck.r17218/12870
K 10
repodlgs.h
V 24
file az.5ck.r17218/13124
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 25
file b2.5ck.r17042/135081
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 25
file o5.5ck.r16929/327729
K 7
wldlg.h
V 24
file o6.5ck.r16285/91411
END
ENDREP
id: 9o.5ck.r17283/74061
type: dir
pred: 9o.5ck.r17258/26323
count: 925
text: 17283 70870 3178 3178 3aa734f53e5d909f8a4e47a22886deae
props: 11108 12237 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-xaw
copyroot: 15280 /trunk

id: 18d.5ck.r17283/74303
type: file
pred: 18d.5ck.r17230/39332
count: 93
text: 17283 14068 2429 47249 0fd5fa93baf1ceb888e5ab830404fc73
props: 9803 3079 111 0 9b377c828b4ca1827963af8e19878787
cpath: /trunk/client/gui-sdl/optiondlg.c
copyroot: 15280 /trunk

id: 17o.5ck.r17283/74559
type: file
pred: 17o.5ck.r17169/47321
count: 149
text: 17283 65721 405 38105 9f51b52f350cc620780e780da11830c5
props: 10411 162763 111 0 93121dcfd7714818c8d46f9c51a886fa
cpath: /trunk/client/gui-sdl/gui_main.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 25
file 16u.5ck.r17230/40948
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.r17122/386217
K 10
chatline.c
V 25
file 16y.5ck.r17146/89176
K 10
chatline.h
V 26
file 16z.5ck.r16199/137581
K 9
citydlg.c
V 25
file 170.5ck.r17146/84297
K 9
citydlg.h
V 23
file 171.0.r13354/55222
K 9
cityrep.c
V 25
file 172.5ck.r17146/86603
K 9
cityrep.h
V 22
file 173.0.r12769/2941
K 8
cma_fe.c
V 25
file 174.5ck.r17258/29997
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 24
file 178.5ck.r17139/2270
K 12
connectdlg.h
V 23
file 179.0.r12349/45319
K 9
dialogs.c
V 25
file 17a.5ck.r17169/48581
K 9
dialogs.h
V 23
file 17b.0.r13354/61529
K 10
diplodlg.c
V 25
file 17c.5ck.r17146/87638
K 10
diplodlg.h
V 22
file 17d.0.r11584/2869
K 17
diplomat_dialog.c
V 25
file 3bn.5ck.r17146/87117
K 9
finddlg.c
V 25
file 17e.5ck.r17146/88408
K 9
finddlg.h
V 20
file 2d8.0.r5991/702
K 9
gotodlg.c
V 25
file 17f.5ck.r17146/84556
K 9
gotodlg.h
V 22
file 17g.0.r6515/58208
K 10
graphics.c
V 26
file 17h.5ck.r16929/334736
K 10
graphics.h
V 23
file 17i.0.r12611/13939
K 11
gui_iconv.c
V 26
file 17l.5ck.r16578/465566
K 11
gui_iconv.h
V 23
file 17m.0.r13354/66657
K 8
gui_id.h
V 25
file 17n.5ck.r17230/40092
K 10
gui_main.c
V 25
file 17o.5ck.r17283/74559
K 10
gui_main.h
V 25
file 17p.5ck.r17169/47828
K 11
gui_mouse.c
V 25
file 3ca.5ck.r17169/47579
K 11
gui_mouse.h
V 24
file 3cb.0.r12670/112397
K 12
gui_string.c
V 26
file 17r.5ck.r17122/390346
K 12
gui_string.h
V 23
file 17s.0.r13481/30445
K 14
gui_tilespec.c
V 26
file 191.5ck.r16929/332661
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 25
file 17z.5ck.r17146/88664
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.r17146/88150
K 10
inteldlg.h
V 22
file 2d9.0.r11409/2687
K 9
mapctrl.c
V 25
file 184.5ck.r17146/87894
K 9
mapctrl.h
V 23
file 185.0.r13354/63700
K 9
mapview.c
V 25
file 186.5ck.r17146/84813
K 9
mapview.h
V 23
file 187.0.r13354/56676
K 6
menu.c
V 25
file 188.5ck.r17146/85834
K 6
menu.h
V 25
file 189.5bk.r13856/57405
K 12
messagedlg.c
V 26
file 18a.5ck.r16578/465051
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.r17283/74303
K 11
optiondlg.h
V 25
file 18e.5ck.r17169/46811
K 7
pages.c
V 25
file 2qg.5ck.r17169/48078
K 7
pages.h
V 22
file 2qh.0.r8639/16416
K 8
plrdlg.c
V 25
file 18f.5ck.r17146/88921
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 25
file 18i.5ck.r17146/85068
K 10
repodlgs.h
V 23
file 18j.0.r13354/58129
K 14
spaceshipdlg.c
V 25
file 18m.5ck.r17146/89433
K 14
spaceshipdlg.h
V 23
file 18n.0.r5500/263363
K 8
sprite.c
V 26
file 39k.5ck.r16578/462217
K 8
sprite.h
V 24
file 39l.0.r12670/108062
K 18
themebackgrounds.c
V 26
file 3ff.5ck.r16929/333181
K 18
themebackgrounds.h
V 25
file 3fg.5bk.r13794/17440
K 13
themecolors.c
V 26
file 392.5ck.r16929/334218
K 13
themecolors.h
V 24
file 393.0.r12670/114433
K 8
themes.c
V 26
file 38p.5ck.r17122/385702
K 11
themespec.c
V 26
file 390.5ck.r17122/386989
K 11
themespec.h
V 26
file 391.5ck.r16578/464018
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.5ck.r17230/39584
K 8
widget.h
V 25
file 3fv.5ck.r17230/39838
K 15
widget_button.c
V 25
file 3fh.5ck.r17146/86344
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 14
widget_combo.c
V 25
file 4k3.5ck.r17230/40601
K 14
widget_combo.h
V 25
file 4k4.5ck.r17230/40775
K 13
widget_core.c
V 25
file 3fj.5ck.r17230/40344
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 26
file 3fo.5df.r16929/336288
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 23
file 18q.5ck.r17225/474
K 7
wldlg.h
V 26
file 18r.5ck.r16285/100508
END
ENDREP
id: 16t.5ck.r17283/79889
type: dir
pred: 16t.5ck.r17258/35323
count: 601
text: 17283 74817 5059 5059 2e6ebcb48a3b357b438733f10555da7d
props: 11108 12869 78 0 a27c61ac5fddbd709df8c1876129f940
cpath: /trunk/client/gui-sdl
copyroot: 15280 /trunk

id: dc.5ck.r17283/80133
type: file
pred: dc.5ck.r17169/54054
count: 216
text: 17283 16524 49170 148323 5c8748f5cd35deecb15bfba019bf527e
props: 10965 83 112 0 b4bb2e29c9087472d2e44c6eab39b6d6
cpath: /trunk/client/options.c
copyroot: 15280 /trunk

PLAIN
K 11
Makefile.am
V 24
file 5f.5ck.r16999/27621
K 6
agents
V 23
dir zf.5ck.r17258/18363
K 11
attribute.c
V 24
file xh.5ck.r17034/13614
K 11
attribute.h
V 19
file xi.0.r4715/844
K 7
audio.c
V 26
file 139.5ck.r17122/401512
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 26
file 13f.5ck.r16578/477644
K 11
audio_sdl.h
V 22
file 13g.0.r4452/26570
K 17
chatline_common.c
V 26
file 14q.5ck.r17122/401257
K 17
chatline_common.h
V 25
file 14r.5ck.r16888/19266
K 16
citydlg_common.c
V 23
file z4.5ck.r17282/3073
K 16
citydlg_common.h
V 24
file z5.5ck.r17166/64267
K 13
cityrepdata.c
V 24
file mb.5ck.r17194/12858
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 23
file 2f.5cp.r17128/1135
K 13
client_main.h
V 23
file hz.5cq.r16632/1773
K 8
climap.c
V 25
file 197.5ck.r16888/19519
K 8
climap.h
V 25
file 198.5ck.r16888/20012
K 9
climisc.c
V 25
file d5.5ck.r17122/405813
K 9
climisc.h
V 23
file i0.5ck.r17044/3522
K 8
clinet.c
V 25
file hc.5ck.r17122/405042
K 8
clinet.h
V 25
file i1.5bk.r14427/324634
K 15
colors_common.c
V 26
file 33a.5ck.r17122/358041
K 15
colors_common.h
V 25
file 33b.5ck.r16397/92170
K 19
connectdlg_common.c
V 26
file 2fw.5ck.r17122/400799
K 19
connectdlg_common.h
V 25
file 2fx.5ck.r16532/38983
K 9
control.c
V 22
file gz.5ck.r17128/658
K 9
control.h
V 22
file i2.5ck.r17128/896
K 7
dummy.c
V 23
file 4f9.5ck.r15641/551
K 8
editor.c
V 26
file 3bg.5ck.r17122/406062
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 17
global_worklist.c
V 26
file 4i6.5ck.r17122/401058
K 17
global_worklist.h
V 26
file 4i7.5ck.r16319/100206
K 6
goto.c
V 22
file vu.5ck.r17238/206
K 6
goto.h
V 24
file vv.5ck.r15509/18108
K 8
gui-ftwl
V 25
dir 2k2.5ck.r17122/400301
K 11
gui-gtk-2.0
V 23
dir zs.5ck.r17283/70373
K 7
gui-sdl
V 24
dir 16t.5ck.r17283/79889
K 8
gui-stub
V 24
dir mh.5ck.r17122/404797
K 9
gui-win32
V 23
dir np.5ck.r17258/29752
K 7
gui-xaw
V 23
dir 9o.5ck.r17283/74061
K 10
helpdata.c
V 24
file h1.5ck.r17256/42399
K 10
helpdata.h
V 25
file i3.5bk.r14417/261925
K 7
include
V 23
dir b8.5ck.r17079/30356
K 16
mapctrl_common.c
V 25
file 15m.5ck.r17068/46203
K 16
mapctrl_common.h
V 23
file 15n.0.r11378/41712
K 16
mapview_common.c
V 25
file z2.5ck.r17122/405287
K 16
mapview_common.h
V 25
file z3.5ck.r16578/482844
K 19
messagewin_common.c
V 25
file 14s.5ck.r17077/10273
K 19
messagewin_common.h
V 25
file 14t.5ck.r15909/37338
K 9
options.c
V 24
file dc.5ck.r17283/80133
K 9
options.h
V 24
file i4.5ck.r17283/66156
K 17
overview_common.c
V 25
file 2yk.5ck.r16930/40265
K 17
overview_common.h
V 25
file 2yl.5ck.r16930/40516
K 10
packhand.c
V 24
file n.5ck.r17122/384162
K 10
packhand.h
V 24
file i5.5bk.r14422/90154
K 15
plrdlg_common.c
V 26
file 14u.5ck.r17122/396100
K 15
plrdlg_common.h
V 26
file 14v.5bk.r14417/257761
K 17
repodlgs_common.c
V 26
file 11i.5ck.r17122/368346
K 17
repodlgs_common.h
V 25
file 11j.5ck.r16971/56809
K 9
reqtree.c
V 26
file 2ym.5ck.r16929/315694
K 9
reqtree.h
V 23
file 2yn.0.r13481/22674
K 9
servers.c
V 26
file 33x.5ck.r17122/406310
K 9
servers.h
V 25
file 33y.5ck.r15505/14398
K 6
text.c
V 25
file 2g3.5ck.r17256/42157
K 6
text.h
V 24
file 2g4.5bk.r14284/8380
K 15
themes_common.c
V 25
file 352.5ck.r16930/48921
K 15
themes_common.h
V 25
file 353.5ck.r16930/49172
K 10
tilespec.c
V 25
file hl.5ck.r17122/401760
K 10
tilespec.h
V 24
file i6.5ck.r16930/49667
K 14
update_queue.c
V 25
file 4jw.5ck.r17079/36327
K 14
update_queue.h
V 25
file 4jx.5ck.r16999/23921
K 10
voteinfo.c
V 26
file 4fe.5ck.r17042/154402
K 10
voteinfo.h
V 25
file 4ff.5ck.r16201/17543
END
ENDREP
id: d.5ck.r17283/84151
type: dir
pred: d.5ck.r17282/7089
count: 4804
text: 17283 80379 3759 3759 1776f376ca569dad9054a17e5e972638
props: 17175 1380 160 0 7b3e01f16aae8514c8fa39e5f80a327d
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 23
file 6.5ck.r16872/79279
K 11
Makefile.am
V 23
file 59.5bk.r14918/1267
K 4
NEWS
V 23
file 6m.5ck.r16839/2057
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 22
dir 8.5ck.r17259/30509
K 10
autogen.sh
V 24
file 12o.5ck.r16223/7590
K 9
bootstrap
V 23
dir 2p5.5ck.r17175/1148
K 6
client
V 22
dir d.5ck.r17283/84151
K 6
common
V 22
dir p.5ck.r17259/27992
K 12
config.mac.h
V 20
file hb.0.r6045/5982
K 12
configure.ac
V 22
file 149.5ck.r17174/53
K 4
data
V 22
dir w.5ck.r17278/30016
K 6
debian
V 23
dir 5w.5ck.r16224/17276
K 12
dependencies
V 23
dir 2yu.5ck.r17024/5709
K 11
diff_ignore
V 23
file qq.5ck.r16311/3290
K 3
doc
V 23
dir k7.5ck.r17256/33249
K 2
m4
V 22
dir 12p.5ck.r17175/107
K 6
manual
V 25
dir 2m2.5ck.r17122/356404
K 2
po
V 26
dir fs.5ck.r17279/21363633
K 7
scripts
V 23
dir 2yo.5bk.r14810/1300
K 6
server
V 22
dir z.5ck.r17259/35640
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 22
dir 1c.5ck.r17263/2485
K 10
version.in
V 25
file 2lo.5ck.r17257/21282
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.r17283/85660
type: dir
pred: 3.5ck.r17282/8595
count: 12946
text: 17283 84383 1264 1264 d76c0ae51dc80464f7a328dfbb4bf7a4
props: 17175 3052 264 0 91336f1f63d2f606e65376614b5c72e4
cpath: /trunk
copyroot: 15280 /trunk

PLAIN
K 8
branches
V 19
dir 1.0.r17281/6241
K 4
tags
V 19
dir 2.0.r16877/5158
K 5
trunk
V 22
dir 3.5ck.r17283/85660
K 7
website
V 18
dir 3ge.0.r12388/0
END
ENDREP
id: 0.0.r17283/86049
type: dir
pred: 0.0.r17282/8985
count: 17283
text: 17283 85886 150 150 e80f584bff3376e668b316902fa28091
cpath: /
copyroot: 0 /

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

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

4js.5ck.t17282-1 modify true false /trunk/client/gui-gtk-2.0/optiondlg.c

18d.5ck.t17282-1 modify true false /trunk/client/gui-sdl/optiondlg.c

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

17o.5ck.t17282-1 modify true false /trunk/client/gui-sdl/gui_main.c


86049 86198
