DELTA 27467 0 398
SVN  ø ý2-ˆ ‡d €F ªe‡c€G „²b€[ d·)€ R¸t€„a µb»± ‡*ðvstruct unit_move_data; /* Actually defined in "server/unittools.c". */  struct unit_move_data *moving;
    } server;
  };
};

#ifdef FREECIV_  /* FREECIV_DEBUG */
#define CHECK_UNIT(punit) /* Do nothing */
#endif /* FREECIV_DEBUG */#define activity_type_list_iterate(_act_list_, _act_)                        \
{                                                                         \
  for (_act_i_ = 0; _act_list_[_act_i_] != ACTIVITY_LAST; _act_i_++) {       \
    Activity_type_id _act_ = _act_list_[_act_i_];

#define activity_type_list_iterate_end                                       \
  }                                                                          \
}

/* Iterates over the types of unit activity. */
#define activity_type_iterate(_act_)					    \
{									    \
  activity_type_list_iterate(real_activities, _act_)

#define activity_type_iterate_end                                           \
  activity_type_list_iterate_end                                        bool unit_is_cityfounder(const struct unit *punitENDREP
DELTA 27913 0 1502
SVN  ™>™F
 - ˆ Š-FREECIV_ENDREP
DELTA 17793 408 5420
SVN  ¿(‚$ƒfÎ …e €°  ‚I>€‚= Y¡} ¢W€ G ž ^·>€2 G ³ ^·>€ W¤q€W G ˜ ^·>€j G  ^·>€‚ G €X ^·>€K l¨w€  l¨w€ \ªl© G ® ^·>€f G €K ^·> J³9ž G € ^·>… X´*€u yµj¦ ^·>€2 G ° ^·>€5 G €B ^·>€@ G ³ ^·>€‚E G ´ ^·>€‚H G €N v·>€' G €_ b·>€} G €P ^·>º Gº€H G €i b·>€‚0 G €S ^·>€I G ± ^·>€n G ° ^·>€l G º ^·>€v G · ^·>€0 G ± ^·>€ G ° ^·>€ G · ^·>€2 G ­ ^·>€ G ­ ^·>€ G €I ^·>€a G €R ^·>€‚7 G š ^·>¶ pº.€ G  ^·>€j G º ^·>€j G   ]·?€x G Ÿ ]·?€v G ¤ ^·>€/ G ¡ ^·>€‚! G  ^·>€‚ ¾'€Ó* (A generalisation of previous city_list and unit_list stuff.)
 *
 * This file is used to implement a "specific" genlist.
 * That is, a (sometimes) type-checked genlist. (Or at least a
 * genlist with related functions with distinctly typed parameters.)
 * (Or, maybe, what you end up doing when you don't use C++ ?)
 * 
 * Before including this file, you must define the following:
 *   SPECLIST_TAG - this tag will be used to form names for functions etc.
 * You may also define:
 *   SPECLIST_TYPE - the typed genlist will contain pointers to this type;
 * If SPECLIST_TYPE is not defined, then 'struct SPECLIST_TAG' is used.
 * At the end of this file, these (and other defines) are undef-ed.
 *
 * Assuming SPECLIST_TAG were 'foo', and SPECLIST_TYPE were 'foo_t',
 * including this file would provide a struct definition for:
 *    struct foo_list;
 *    struct foo_list_link;
 *
 * function typedefs:
 *    typedef void (*foo_list_free_fn_t) (foo_t *);
 *    typedef foo_t * (*foo_list_copy_fn_t) (const foo_t *);
 *    typedef bool (*foo_list_comp_fn_t) (const foo_t *, const foo_t *);
 *    typedef bool (*foo_list_cond_fn_t) (const foo_t *);
 *
 * and prototypes for the following functions:
 *    struct foo_list *foo_list_new(void);
 *    struct foo_list *foo_list_new_full(foo_list_free_fn_t free_data_func);
 *    void foo_list_destroy(struct foo_list *plist);
 *    struct foo_list *foo_list_copy(const struct foolist *plist);
 *    struct foo_list *foo_list_copy_full(const struct foolist *plist,
 *                                        foo_list_copy_fn_t copy_data_func,
 *                                        foo_list_free_fn_t free_data_func);
 *    void foo_list_clear(struct foo_list *plist);
 *    void foo_list_unique(struct foo_list *plist);
 *    void foo_list_unique_full(struct foo_list *plist,
 *                              foo_list_comp_fn_t comp_data_func);
 *    void foo_list_append(struct foo_list *plist, foo_t *pfoo);
 *    void foo_list_prepend(struct foo_list *plist, foo_t *pfoo);
 *    void foo_list_insert(struct foo_list *plist, foo_t *pfoo, int idx);
 *    void foo_list_insert_after(struct foo_list *plist, foo_t *pfoo,
 *                               struct foo_list_link *plink);
 *    void foo_list_insert_before(struct foo_list *plist, foo_t *pfoo,
 *                                struct foo_list_link *plink);
 *    bool foo_list_remove(struct foo_list *plist, const foo_t *pfoo);
 *    bool foo_list_remove_if(struct foo_list *plist,
 *                            foo_list_cond_fn_t cond_data_func);
 *    int foo_list_remove_all(struct foo_list *plist, const foo_t *pfoo);
 *    int foo_list_remove_all_if(struct foo_list *plist,
 *                               foo_list_cond_fn_t cond_data_func);
 *    void foo_list_erase(struct foo_list *plist,
 *                        struct foo_list_link *plink);
 *    void foo_list_pop_front(struct foo_list *plist);
 *    void foo_list_pop_back(struct foo_list *plist);
 *    int foo_list_size(const struct foo_list *plist);
 *    foo_t *foo_list_get(const struct foo_list *plist, int idx);
 *    foo_t *foo_list_front(const struct foo_list *plist);
 *    foo_t *foo_list_back(const struct foo_list *plist);
 *    struct foo_list_link *foo_list_link(const struct foo_list *plist,
 *                                        int idx);
 *    struct foo_list_link *foo_list_head(const struct foo_list *plist);
 *    struct foo_list_link *foo_list_tail(const struct foo_list *plist);
 *    struct foo_list_link *foo_list_search(const struct foo_list *plist,
 *                                          const void *data);
 *    struct foo_list_link *foo_list_search_if(const struct foo_list *plist,
 *                                             foo_list_cond_fn_t
 *                                             cond_data_func);
 *    void foo_list_sort(struct foo_list *plist,
 *       int (*compar) (const foo_t *const *, const foo_t *const *));
 *    void foo_list_shuffle(struct foo_list *plist);
 *    void foo_list_reverse(struct foo_list *plist);
 *    void foo_list_allocate_mutex(struct foo_list *plist);
 *    void foo_list_release_mutex(struct foo_list *plist);
 *    foo_t *foo_list_link_data(const struct foo_list_link *plink);
 *    struct foo_list_link *
 *        foo_list_link_prev(const struct foo_list_link *plink);
 *    struct foo_list_link *
 *        foo_list_link_next(const struct foo_list_link *plink);
 *
 * You should also define yourself (this file cannot do this for you):
 * #define foo_list_iterate(foolist, pfoo)                                  \
 *   TYPED_LIST_ITERATE(foo_t, foolist, pfoo)
 * #define foo_list_iterate_end LIST_ITERATE_END
 *
 * #define foo_list_iterate_rev(foolist, pfoo)                              \
 *   TYPED_LIST_ITERATE_REV(foo_t, foolist, pfoo)
 * #define foo_list_iterate_rev_end LIST_ITERATE_REV_END
 *
 * #define foo_list_link_iterate(foolist, plink)                            \
 *   TYPED_LIST_LINK_ITERATE(struct foo_list_link, foolist, plink)
 * #define foo_list_link_iterate_end LIST_LINK_ITERATE_END
 *
 * #define foo_list_link_iterate_rev(foolist, plink)                        \
 *   TYPED_LIST_LINK_ITERATE_REV(struct foo_list_link, foolist, plink)
 * #define foo_list_link_iterate_rev_end LIST_LINK_ITERATE_REV_END
 *
 * #define foo_list_both_iterate(foolist, plink, pfoo)                      \
 *   TYPED_LIST_BOTH_ITERATE(struct foo_list_link, foo_t,                   \
                             foolist, plink, pfoo)
 * #define foo_list_both_iterate_end LIST_BOTH_ITERATE_END
 *
 * #define foo_list_both_iterate_rev(foolist, pfoo)                         \
 *   TYPED_LIST_BOTH_ITERATE_REV(struct foo_list_link, foo_t,               \
                                 foolist, plink, pfoo)
 * #define foo_list_both_iterate_rev_end LIST_BOTH_ITERATE_REV_END
 *
 * Note this is not protected against multiple inclusions; this is so that
 * you can have multiple different speclists. For each speclist, this file
 * should be included _once_, inside a .h file which _is_ itself protected
 * against multiple inclusions. */

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include "genlistLINK struct SPECLIST_PASTE(SPECLIST_TAG, _list_link)
#define SPECLIST_FOO(suffix) SPECLIST_PASTE(SPECLIST_TAG, suffix)

/* Dummy type. Actually a genlist, and not defined anywhere. */
SPECLIST_LIST;

/* Dummy type. Actually a genlist_link, and not defined anywhere. */
SPECLIST_LINK;

/* Function related typedefs. */

                                               const SPECLIST_TYPE *);
typedef bool (*SPECLIST_FOO(_list_cond_fn_t)) (const SPECLIST_TYPE *);


******
  Create a new speclistSPECLIST_LIST *SPECLIST_FOO(_list_new) (void)
fc__warn_unused_result;

static inline SPECLIST_LIST *SPECLIST_FOO(_list_new) (void)
{
  return (SPECLIST_LIST *) genlist_new();
}

******
  Create a new speclist with a free callbackSPECLIST_LIST *
SPECLIST_FOO(_list_new_full) (SPECLIST_FOO(_list_free_fn_t) free_data_func)
fc__warn_unused_result;

static inline SPECLIST_LIST *
((SPECLIST_LIST *)
          genlist_new_full((genlist_free_fn_t) free_data_func));
}

******
  Free a speclistvoid SPECLIST_FOO(_list_destroy) (SPECLIST_LIST *tthis)
{
  genlist_destroy((struct genlist *) tthis);
}

******
  Duplicate a speclistSPECLIST_LIST *
SPECLIST_FOO(_list_copy) (const SPECLIST_LIST *tthis)
fc__warn_unused_result;

static inline SPECLIST_LIST *
SPECLIST_FOO(_list_copy) (const SPECLIST_LIST *tthis)
{
  return (SPECLIST_LIST *) genlist_copy((const struct genlist *) tthis);
}

******
  Duplicate a speclist with a free callback and a function to copy each
  elementSPECLIST_LIST *
SPECLIST_FOO(_list_copy_full) (const SPECLIST_LIST *tthis,
SPECLIST_FOO(_list_free_fn_t) free_data_func)
fc__warn_unused_result;

static inline SPECLIST_LIST *
SPECLIST_FOO(_list_copy_full) (const SPECLIST_LIST *tthis,
SPECLIST_FOO(_list_free_fn_t) free_data_func)
{
  return ((SPECLIST_LIST *)
          genlist_copy_full((const struct genlist *) tthis,
(genlist_free_fn_t) free_data_func));
}

******
  Remove all elements from the speclistvoid SPECLIST_FOO(_list_clear) (SPECLIST_LIST *tthis)
{
  genlist_clear((struct genlist *) tthis);
}

******
  Remove all element duplicates (the speclist must be sorted before)(struct genlist *) tthis);
}

******
  Remove all element duplicates (the speclist must be sorted before), using
  'comp_data_func' to determine if the elements are equivalentsvoid
SPECLIST_FOO(_list_comp_fn_t) comp_data_func)
{
  genlist_unique_full((struct genlist *) tthis,
                     Push back an element into the speclistvoid SPECLIST_FOO(_list_append) (SPECLIST_LIST *tthis,
                                               SPECLIST_TYPE *pfoo)
{
  genlist_append((struct genlist *) tthis, pfoo);
}

******
  Push front an element into the speclistvoid SPECLIST_FOO(_list_prepend) (SPECLIST_LIST *tthis,
                                                SPECLIST_TYPE *pfoo)
{
  genlist_prepend((struct genlist *) tthis, pfoo);
}

******
  Insert an element into the speclist at the given positionvoid SPECLIST_FOO(_list_insert) (SPECLIST_LIST *tthis,
                                               SPECLIST_TYPE *pfoo, int idx)
{
  genlist_insert((struct genlist *) tthis, pfoo, idx);
}

******
  Insert an element after the specified linkvoid SPECLIST_FOO(_list_insert_after) (SPECLIST_LIST *tthis,
                                                     SPECLIST_TYPE *pfoo,
                                                     SPECLIST_LINK *plink)
{
  genlist_insert_after((struct genlist *) tthis, pfoo,
                       (struct genlist_link *) plink);
}

******
  Insert an element before the specified linkvoid SPECLIST_FOO(_list_insert_before) (SPECLIST_LIST *tthis,
                                                     SPECLIST_TYPE *pfoo,
                                                     SPECLIST_LINK *plink)
{
  genlist_insert_before((struct genlist *) tthis, pfoo,
                        (struct genlist_link *) plink);
}

******
  Search 'pfoo' in the speclist, and remove it. Returns TRUE on successremove) (SPECLIST_LIST *tthis,
                                               const SPECLIST_TYPE *pfoo)
{
  return genlist_remove((struct genlist *) tthis, pfoo);
}

******
  Remove the first element which fit the conditional function. Returns
  TRUE on success
SPECLIST_FOO(_list_remove_if) (SPECLIST_LIST *tthis,
                               SPECLIST_FOO(_list_cond_fn_t) cond_data_func)
{
  return genlist_remove_if((struct genlist *) tthis,
                           (genlist_cond_fn_t) cond_data_func);
}

******
  Remove 'pfoo' of the whole list. Returns the number of removed elementsint SPECLIST_FOO(_list_remove_all) (SPECLIST_LIST *tthis,
pfoo)
{
  return genlist_remove_all((struct genlist *) tthis, pfoo);
}

******
  Remove all elements which fit the conditional function. Returns the
  number of removed elements
SPECLIST_FOO(_list_remove_all_if) (SPECLIST_LIST *tthis,
                                   SPECLIST_FOO(_list_cond_fn_t)
                                   cond_data_func)
{
  return genlist_remove_all_if((struct genlist *) tthis,
                               (genlist_cond_fn_t) cond_data_func);
}

******
  Remove the elements pointed by 'plink'. Returns the next element of the
  speclist.

  NB: After calling this function 'plink' is no more usable. You should
  have saved the next or previous link beforevoid SPECLIST_FOO(_list_erase) (SPECLIST_LIST *tthis,
                                              SPECLIST_LINK *plink)
{
  genlist_erase((struct genlist *) tthis, (struct genlist_link *) plink);
}

******
  Remove the first element of the speclistvoid SPECLIST_FOO(_list_pop_front) (SPECLIST_LIST *tthis)
{
  genlist_pop_front((struct genlist *) tthis);
}

******
  Remove the last element of the speclistvoid SPECLIST_FOO(_list_pop_back) (SPECLIST_LIST *tthis)
{
  genlist_pop_back((struct genlist *) tthis);
}

******
  Return the number of elements inside the speclistint SPECLIST_FOO(_list_size) (const SPECLIST_LIST *tthis)
{
  return genlist_size((const struct genlist *) tthis);
}

******
  Return the element at position in the speclistSPECLIST_TYPE *
SPECLIST_FOO(_list_get) (const SPECLIST_LIST *tthis, int index)
{
  return ((SPECLIST_TYPE *)
          genlist_get((const struct genlist *) tthis, index));
}

******
  Return the first element of the speclistSPECLIST_TYPE *
SPECLIST_FOO(_list_front) (const SPECLIST_LIST *tthis)
{
  return (SPECLIST_TYPE *) genlist_front((const struct genlist *) tthis);
}

******
  Return the last element of the speclistSPECLIST_TYPE *
SPECLIST_FOO(_list_back) (const SPECLIST_LIST *tthis)
{
  return (SPECLIST_TYPE *) genlist_back((const struct genlist *) tthis);
}

******
  Return the element at position in the speclistSPECLIST_LINK *
SPECLIST_FOO(_list_link) (const SPECLIST_LIST *tthis, int index)
{
  return ((SPECLIST_LINK *)
          genlist_link((const struct genlist *) tthis, index));
}

******
  Return the head link of the speclistSPECLIST_LINK *
SPECLIST_FOO(_list_head) (const SPECLIST_LIST *tthis)
{
  return (SPECLIST_LINK *) genlist_head((const struct genlist *) tthis);
}

******
  Return the tail link of the speclistSPECLIST_LINK *
SPECLIST_FOO(_list_tail) (const SPECLIST_LIST *tthis)
{
  return (SPECLIST_LINK *) genlist_tail((const struct genlist *) tthis);
}

******
  Return the link of the first element which match the data 'pfoo'SPECLIST_LINK *
SPECLIST_FOO(_list_search) (const SPECLIST_LIST *tthis,
                            const SPECLIST_TYPE *pfoo)
{
  return ((SPECLIST_LINK *)
          genlist_search((const struct genlist *) tthis, pfoo));
}

******
  Return the link of the first element which match the conditional functionSPECLIST_LINK *
SPECLIST_FOO(_list_search_if) (const SPECLIST_LIST *tthis,
                               SPECLIST_FOO(_list_cond_fn_t) cond_data_func)
{
  return ((SPECLIST_LINK *)
          genlist_search_if((const struct genlist *) tthis,
                            (genlist_cond_fn_t) cond_data_func));
}

******
  Sort the speclistvoid
SPECLIST_FOO(_list_sort) (SPECLIST_LIST * tthis,
const SPECLIST_TYPE *const *))
{
  genlist_sort((struct genlist *) tthis,
               (int (*)(const void *, const void *)) compar);
}

******
  Shuffle the speclistvoid SPECLIST_FOO(_list_shuffle) (SPECLIST_LIST *tthis)
{
  genlist_shuffle((struct genlist *) tthis);
}

******
  Reverse the order of the elements of the speclistvoid SPECLIST_FOO(_list_reverse) (SPECLIST_LIST *tthis)
{
  genlist_reverse((struct genlist *) tthis);
}

******
  Allocate speclist mutexvoid SPECLIST_FOO(_list_allocate_mutex) (SPECLIST_LIST *tthis)
{
  genlist_allocate_mutex((struct genlist *) tthis);
}

******
  Release speclist mutexvoid SPECLIST_FOO(_list_release_mutex) (SPECLIST_LIST *tthis)
{
  genlist_release_mutex((struct genlist *) tthis);
}

******
  Return the data of the linkSPECLIST_TYPE *
SPECLIST_FOO(_list_link_data) (const SPECLIST_LINK *plink)
{
  return ((SPECLIST_TYPE *)
          genlist_link_data((const struct genlist_link *) plink));
}

******
  Return the previous linkSPECLIST_LINK *
SPECLIST_FOO(_list_link_prev) (const SPECLIST_LINK *plink)
fc__warn_unused_result;

static inline SPECLIST_LINK *
SPECLIST_FOO(_list_link_prev) (const SPECLIST_LINK *plink)
{
  return ((SPECLIST_LINK *)
          genlist_link_prev((const struct genlist_link *) plink));
}

******
  Return the next linkSPECLIST_LINK *
SPECLIST_FOO(_list_link_next) (const SPECLIST_LINK *plink)
fc__warn_unused_result;

static inline SPECLIST_LINK *
SPECLIST_FOO(_list_link_next) (const SPECLIST_LINK *plink)
{
  return ((SPECLIST_LINK *)
          genlist_link_next((const struct genlist_link *) plink));
}
/* Base macros that the users can specialize. */
#ifndef FC__SPECLIST_H  /* Defines this only once, no multiple inclusions. */
#define FC__SPECLIST_H

#ifdef FREECIV_DEBUG
#  define TYPED_LIST_CHECK(ARG_list)                                       \
  fc_assert_action(NULL != ARG_list, break)
#else
#  define TYPED_LIST_CHECK(ARG_list) /* Nothing. */
#endif /* FREECIV_DEBUG */

/* Speclist data iterator.
 * 
 * Using *_list_remove(NAME_data) is safe in this loop (but it may be
 * inefficient due to the linear research of the data, see also
 * *_list_erase()).
 * Using *_list_clear() will result to use freed data. It must be avoided!
 *
 * TYPE_data - The real type of the data in the genlist/speclist.
 * ARG_list - The speclist to iterate.
 * NAME_data - The name of the data iterator (defined inside the macro). */
#define TYPED_LIST_ITERATE(TYPE_data, ARG_list, NAME_data)                  \
do {                                                                        \
  const struct genlist_link *NAME_data##_iter;                              \
  TYPE_data *NAME_data;                                                     \
  TYPED_LIST_CHECK(ARG_list);                                               \
  NAME_data##_iter = genlist_head((const struct genlist *) ARG_list);       \
  while (NULL != NAME_data##_iter) {                                        \
    NAME_data = (TYPE_data *) genlist_link_data(NAME_data##_iter);          \
    NAME_data##_iter = genlist_link_next(NAME_data##_iter);

/* Balance for above: */ 
#define LIST_ITERATE_END                                                    \
  }                                                                         \
} while (FALSE);

/* Mutex protected speclist data iterator.
 * 
 * Using *_list_remove(NAME_data) is safe in this loop (but it may be
 * inefficient due to the linear research of the data, see also
 * *_list_erase()).
 * Using *_list_clear() will result to use freed data. It must be avoided!
 *
 * TYPE_data - The real type of the data in the genlist/speclist.
 * LIST_tag - Tag of the speclist
 * ARG_list - The speclist to iterate.
 * NAME_data - The name of the data iterator (defined inside the macro). */
#define MUTEXED_LIST_ITERATE(TYPE_data, LIST_tag, ARG_list, NAME_data)      \
do {                                                                        \
  const struct genlist_link *NAME_data##_iter;                              \
  TYPE_data *NAME_data;                                                     \
  LIST_tag##_list_allocate_mutex(ARG_list);                                 \
  TYPED_LIST_CHECK(ARG_list);                                               \
  NAME_data##_iter = genlist_head((const struct genlist *) ARG_list);       \
  while (NULL != NAME_data##_iter) {                                        \
    NAME_data = (TYPE_data *) genlist_link_data(NAME_data##_iter);          \
    NAME_data##_iter = genlist_link_next(NAME_data##_iter);

/* Balance for above: */ 
#define MUTEXED_ITERATE_END(LIST_tag, ARG_list)                             \
  }                                                                         \
    LIST_tag##_list_release_mutex(ARG_list);                                \
} while (FALSE);

#define MUTEXED_ITERATE_BREAK(LIST_tag, ARG_list)                           \
do {                                                                        \
  LIST_tag##_list_release_mutex(ARG_list);                                  \
} while (FALSE);

/* Same, but iterate backwards:
 *
 * TYPE_data - The real type of the data in the genlist/speclist.
 * ARG_list - The speclist to iterate.
 * NAME_data - The name of the data iterator (defined inside the macro). */
#define TYPED_LIST_ITERATE_REV(TYPE_data, ARG_list, NAME_data)              \
do {                                                                        \
  const struct genlist_link *NAME_data##_iter;                              \
  TYPE_data *NAME_data;                                                     \
  TYPED_LIST_CHECK(ARG_list);                                               \
  NAME_data##_iter = genlist_tail((const struct genlist *) ARG_list);       \
  while (NULL != NAME_data##_iter) {                                        \
    NAME_data = (TYPE_data *) genlist_link_data(NAME_data##_iter);          \
    NAME_data##_iter = genlist_link_prev(NAME_data##_iter);

/* Balance for above: */ 
#define LIST_ITERATE_REV_END                                                \
  }                                                                         \
} while (FALSE);

/* Speclist link iterator.
 *
 * Using *_list_erase(NAME_link) is safe in this loop.
 * Using *_list_clear() will result to use freed data. It must be avoided!
 *
 * TYPE_link - The real type of the link.
 * ARG_list - The speclist to iterate.
 * NAME_link - The name of the link iterator (defined inside the macro). */
#define TYPED_LIST_LINK_ITERATE(TYPE_link, ARG_list, NAME_link)             \
do {                                                                        \
  TYPE_link *NAME_link = ((TYPE_link *)                                     \
                          genlist_head((const struct genlist *) ARG_list)); \
  TYPE_link *NAME_link##_next;                                              \
  TYPED_LIST_CHECK(ARG_list);                                               \
  for (; NULL != NAME_link; NAME_link = NAME_link##_next) {                 \
    NAME_link##_next = ((TYPE_link *)                                       \
                        genlist_link_next((struct genlist_link *)           \
                                          NAME_link));

/* Balance for above: */ 
#define LIST_LINK_ITERATE_END                                               \
  }                                                                         \
} while (FALSE);

/* Same, but iterate backwards:
 *
 * TYPE_link - The real type of the link.
 * ARG_list - The speclist to iterate.
 * NAME_link - The name of the link iterator (defined inside the macro). */
#define TYPED_LIST_LINK_ITERATE_REV(TYPE_link, ARG_list, NAME_link)         \
do {                                                                        \
  TYPE_link *NAME_link = ((TYPE_link *)                                     \
                          genlist_tail((const struct genlist *) ARG_list)); \
  TYPE_link *NAME_link##_prev;                                              \
  TYPED_LIST_CHECK(ARG_list);                                               \
  for (; NULL != NAME_link; NAME_link = NAME_link##_prev) {                 \
    NAME_link##_prev = ((TYPE_link *)                                       \
                        genlist_link_prev((struct genlist_link *)           \
                                          NAME_link));

/* Balance for above: */ 
#define LIST_LINK_ITERATE_REV_END                                           \
  }                                                                         \
} while (FALSE);

/* Speclist link and data iterator.
 *
 * Using *_list_erase(NAME_link) is safe in this loop.
 * Using *_list_clear() will result to use freed data. It must be avoided!
 *
 * TYPE_link - The real type of the link.
 * TYPE_data - The real type of the data in the genlist/speclist.
 * ARG_list - The speclist to iterate.
 * NAME_link - The name of the link iterator (defined inside the macro).
 * NAME_data - The name of the data iterator (defined inside the macro). */
#define TYPED_LIST_BOTH_ITERATE(TYPE_link, TYPE_data,                       \
                                ARG_list, NAME_link, NAME_data)             \
do {                                                                        \
  TYPE_link *NAME_link = ((TYPE_link *)                                     \
                          genlist_head((const struct genlist *) ARG_list)); \
  TYPE_link *NAME_link##_next;                                              \
  TYPE_data *NAME_data;                                                     \
  TYPED_LIST_CHECK(ARG_list);                                               \
  for (; NULL != NAME_link; NAME_link = NAME_link##_next) {                 \
    NAME_link##_next = ((TYPE_link *)                                       \
                        genlist_link_next((struct genlist_link *)           \
                                          NAME_link));                      \
    NAME_data = ((TYPE_data *)                                              \
                 genlist_link_data((struct genlist_link *) NAME_link));

/* Balance for above: */ 
#define LIST_BOTH_ITERATE_END                                               \
  }                                                                         \
} while (FALSE);

/* Same, but iterate backwards:
 *
 * TYPE_link - The real type of the link.
 * TYPE_data - The real type of the data in the genlist/speclist.
 * ARG_list - The speclist to iterate.
 * NAME_link - The name of the link iterator (defined inside the macro).
 * NAME_data - The name of the data iterator (defined inside the macro). */
#define TYPED_LIST_BOTH_ITERATE_REV(TYPE_link, TYPE_data,                   \
                                ARG_list, NAME_link, NAME_data)             \
do {                                                                        \
  TYPE_link *NAME_link = ((TYPE_link *)                                     \
                          genlist_tail((const struct genlist *) ARG_list)); \
  TYPE_link *NAME_link##_prev;                                              \
  TYPE_data *NAME_data;                                                     \
  TYPED_LIST_CHECK(ARG_list);                                               \
  for (; NULL != NAME_link; NAME_link = NAME_link##_prev) {                 \
    NAME_link##_prev = ((TYPE_link *)                                       \
                        genlist_link_prev((struct genlist_link *)           \
                                          NAME_link));                      \
    NAME_data = ((TYPE_data *)                                              \
                 genlist_link_data((struct genlist_link *) NAME_link));

/* Balance for above: */ 
#define LIST_BOTH_ITERATE_REV_END                                           \
  }                                                                         \
} while (FALSE);

#endif /* FC__SPECLIST_H */

/* This is after #endif FC__SPECLIST_H on purpose.
   extern "C" portion begins well before latter part of the header
   is guarded against multiple inclusions. */
#ifdef __cplusplus
}
#endif /* __cplusplus */
ENDREP
DELTA 22382 16192 1438
SVN  –L–\ ‹ ˆ „(‹ˆ ‡<FREECIV_FREECIV_ENDREP
DELTA 20315 2700 5299
SVN  ¯B¯J
  ˆ ’:FREECIV_ENDREP
DELTA 20315 2002 669
SVN  BK
 †Q  †k†W(FREECIV_DEBUG)ENDREP
DELTA 21051 0 3013
SVN  —6–|ƒ€ Š;x€  U‹Xª fˆ8 }Ž€] …w‘?AC_DEFUN([FC_DEBUG], [
AC_ARG_ENABLE(debug,
  AS_HELP_STRING([--enable-debug[[=no/some/yes/checks]]], [turn on debugging [[default=some]]])FREECIV_DEBUG], [1], [Extra debugging support])
  AC_DEFINE([DEBUG], [1], [Extra debugging support, backward compatibility macro \
              -Wno-tautological-compare \
                  -Wno-tautological-compare],
                 [], [EXTRA_DEBUG_CXXFLAGS])ENDREP
DELTA 23702 2160 10917
SVN  Ü?ã<‡ ‡X € !ˆ` ‚Š€ ˆŒ€> i”€ „V£l€a B™> •
¨Z€: ž_½`4.Oct.09"

/* Timers for all AI activities. Define it to get statistics about the AI. */
#ifdef FREECIV_DEBUG
#  undef DEBUG_AITIMERS
#endif /* FREECIV_starts. Game is not necessarily new one,
       it can also be an old game loaded from a savegame. */
    void (*game_start)(void);
original, struct player *created);

   /* Called for AI type of the player who got created from the split. */
    void (*created_by_civil_war)(struct player *original, struct player *createdplayer AI when evaluating governments. */
    void (*gov_value)(struct player *pplayer, struct government *gov,
                      int *val, bool *overrideunit changes type. */
    void (*unit_transformed)(struct unit *punit, struct unit_type *old_typeNote that when contact is between two AI players, callback
     * might be already called for the other party, so you can't assume
     * relations to be all-pristine when this gets callENDREP
DELTA 27204 1008 1169
SVN  ‰
„ ˆa €„$ˆ_/* Use pthreads as thread implementation */
#undef FREECIV_HAVE_PTHREAD

/* Use Windows threads as thread implementation */
#undef FREECIV_HAVE_WINTHREADS

/* Has thread condition variable implementation */
#undef FREECIV_HAVE_THREAD_COND

/* Native language support enabled */
#undef FREECIV_ENABLE_NLS

/* locale.h available */
#undef FREECIV_HAVE_LOCALE_H

/* libintl.h available */
#undef FREECIV_HAVE_LIBINTL_H

/* jansson network protocol in use */
#undef FREECIV_JSON_CONNECTION

/* Extra debugging support */
#undef FREECIV_DEBUGENDREP
DELTA 27821 88 538
SVN  £J¤  l § v Zˆ ¡P€`&£$init(void);
void timing_log_free(void);FREECIV_FREECIV_DEBUG */
#define TIMING_LOG(timer, activity)
#define TIMING_RESULTS()
#endif /* FREECIV_ENDREP
DELTA 27621 0 124
SVN  ¼`¼p Æ* ˆ mÆ*ˆ õIÇFREECIV_FREECIV_ENDREP
DELTA 17927 7515 1536
SVN  ,§(‰h …j ¶ ‚M…f€…j .ˆ4ˆ ‰bŒ OŠi€‚h `›/€Lfdef __cplusplus
extern "C" {
#endif /* __cplusplus */Dynamic bitvectors */
struct dbv {
  int bits;
  unsigned char *vec;
};

void dbv_init(struct dbv *pdbv, int bits);
void dbv_resize(struct dbv *pdbv, int bits);
void dbv_free(struct dbv *pdbv);

int dbv_bits(struct dbv *pdbv);

bool dbv_isset(const struct dbv *pdbv, int bit);
bool dbv_isset_any(const struct dbv *pdbv);

void dbv_set(struct dbv *pdbv, int bit);
void dbv_set_all(struct dbv *pdbv);

void dbv_clr(struct dbv *pdbv, int bit);
void dbv_clr_all(struct dbv *pdbv);

bool dbv_are_equal(const struct dbv *pdbv1, const struct dbv *pdbv2);

void dbv_debug(struct dbv *pdbv);

/* Maximal size of a dynamic bitvector.
   Use a large value to be on the safe side (4Mbits = 512kbytes). */
#define MAX_DBV_LENGTH (4 * 1024 * 1024)

/* Static bFREECIV_(signed int)void bv_set_all_from(unsigned char *vec_to,
                     const unsigned char *vec_from,
                     size_t size_to, size_t size_from);
#define BV_SET_ALL_FROM(vec_to, vec_from)                                 \
  bv_set_all_from((vec_to).vec, (vec_from).vec,                           \
                  sizeof((vec_to).vec), sizeof((vec_fromifdef __cplusplus
}
#endif /* __cplusplus */

#endif  /* FC__BITVECTOR_H */
ENDREP
DELTA 27662 0 2352
SVN  Ä_Å"( ”: ˆ „”:ˆ E˜Xˆ ‡ošˆ G¢ˆ ¡£SFREECIV_FREECIV_FREECIV_FREECIV_FREECIV_ENDREP
id: 54.5qi.r28013/32081
type: file
pred: 54.5qi.r27662/2378
count: 49
text: 28013 31970 85 8839 ccd2626b509fa1f622cc5321a8d2ef04
props: 10070 1108 111 0 1912998302effd94f7d1c131050552ad
cpath: /branches/S2_6/utility/log.h
copyroot: 27474 /branches/S2_6

id: gb.5qi.r28013/32335
type: file
pred: gb.5ck.r23834/61
count: 24
text: 28013 1179 26885 34724 c0e1299a3722b4cb6eea117471c1c14a
props: 10194 1300 110 0 a3ee73c7ed0bd397f9f2fedc7793a5b7
cpath: /branches/S2_6/utility/speclist.h
copyroot: 27474 /branches/S2_6

id: 4uo.5qi.r28013/32595
type: file
pred: 4uo.5ck.r26905/40272
count: 8
text: 28013 30633 1308 4996 af8962ead0f972f5a2d1c4e49d1a0ba8
props: 26905 40225 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /branches/S2_6/utility/bitvector.h
copyroot: 27474 /branches/S2_6

id: em.5qi.r28013/32859
type: file
pred: em.5ck.r22382/27015
count: 9
text: 28013 28092 43 2908 d8fdaadf52d932c4432618c42712f86f
props: 4423 4327 110 0 dce24d5ac3f5e86568d59a55fa196991
cpath: /branches/S2_6/utility/timing.h
copyroot: 27474 /branches/S2_6

PLAIN
K 11
Makefile.am
V 25
file 2gg.5ck.r26188/18425
K 9
astring.c
V 23
file h5.5ck.r22395/1264
K 9
astring.h
V 23
file h6.5ck.r20479/1668
K 11
bitvector.c
V 25
file 4un.5ck.r26905/46406
K 11
bitvector.h
V 25
file 4uo.5qi.r28013/32595
K 12
capability.c
V 24
file 7p.5ck.r24916/10883
K 12
capability.h
V 24
file 7q.5ck.r18858/85852
K 12
distribute.c
V 26
file 2lp.5ck.r19259/362511
K 12
distribute.h
V 25
file 2lq.5ck.r18858/87951
K 9
fc_utf8.c
V 23
file 4ku.5ck.r26944/198
K 9
fc_utf8.h
V 25
file 4kv.5ck.r26905/46695
K 13
fcbacktrace.c
V 22
file 731.5ck.r26959/58
K 13
fcbacktrace.h
V 25
file 732.5ck.r26905/45245
K 9
fciconv.c
V 25
file 2g7.5ck.r26800/15337
K 9
fciconv.h
V 25
file 2g8.5ck.r18858/89144
K 8
fcintl.c
V 23
file k3.5ck.r23282/1304
K 8
fcintl.h
V 23
file fw.5ck.r27335/1747
K 10
fcthread.c
V 24
file 6hv.5ck.r27333/1127
K 10
fcthread.h
V 23
file 6hw.5ck.r27333/886
K 20
generate_specenum.py
V 23
file 4ia.5ck.r27150/401
K 9
genhash.c
V 23
file 57v.5ck.r27456/668
K 9
genhash.h
V 25
file 57w.5ck.r26905/43784
K 9
genlist.c
V 24
file 51.5ck.r25012/26982
K 9
genlist.h
V 24
file 52.5ck.r20422/10948
K 11
inputfile.c
V 23
file h9.5ck.r25070/3455
K 11
inputfile.h
V 24
file ha.5ck.r18858/84203
K 5
ioz.c
V 21
file uh.5qi.r27793/56
K 5
ioz.h
V 23
file ui.5ck.r25070/3932
K 10
iterator.c
V 25
file 4h5.5ck.r26905/44951
K 10
iterator.h
V 25
file 4f3.5ck.r26905/45830
K 5
log.c
V 21
file 53.5ck.r24492/53
K 5
log.h
V 24
file 54.5qi.r28013/32081
K 5
md5.c
V 22
file 33q.5ck.r25082/54
K 5
md5.h
V 25
file 33r.5ck.r19849/16287
K 5
mem.c
V 25
file d9.5ck.r19259/362758
K 5
mem.h
V 24
file da.5ck.r20315/22211
K 9
netfile.c
V 25
file 6m8.5ck.r26905/41142
K 9
netfile.h
V 25
file 6m9.5ck.r26905/41734
K 9
netintf.c
V 22
file t6.5qi.r27904/160
K 9
netintf.h
V 22
file t7.5ck.r26628/136
K 6
rand.c
V 25
file m5.5ck.r19259/363664
K 6
rand.h
V 24
file m6.5ck.r20315/22687
K 10
registry.c
V 25
file agw.5ck.r26905/40563
K 10
registry.h
V 25
file 7po.5ck.r26905/40851
K 14
registry_ini.c
V 24
file dh.5io.r25759/95268
K 14
registry_ini.h
V 23
file di.5ip.r26114/7727
K 14
registry_xml.c
V 26
file 16x3.5ck.r26905/44658
K 14
registry_xml.h
V 26
file 16x5.5ck.r26905/45535
K 14
section_file.c
V 25
file bw9.5ck.r26905/42610
K 14
section_file.h
V 25
file axo.5ck.r26905/42907
K 8
shared.c
V 22
file 55.5ck.r27051/465
K 8
shared.h
V 23
file 1d.5ck.r27335/1507
K 10
spechash.h
V 25
file 57x.5ck.r26905/46987
K 10
speclist.h
V 24
file gb.5qi.r28013/32335
K 8
specpq.h
V 26
file 1brp.5ck.r26905/42320
K 9
specvec.h
V 21
file z9.5ck.r24658/96
K 15
string_vector.c
V 25
file 4hy.5ck.r26905/41433
K 15
string_vector.h
V 25
file 4hz.5ck.r26905/42022
K 9
support.c
V 23
file m9.5qi.r27664/5881
K 9
support.h
V 22
file ma.5qi.r27590/113
K 8
timing.c
V 24
file el.5ck.r24200/17365
K 8
timing.h
V 24
file em.5qi.r28013/32859
END
ENDREP
id: 1c.5qi.r28013/35931
type: dir
pred: 1c.5qi.r27904/3223
count: 891
text: 28013 33115 2803 2803 c6ca0b9b468e4c24e6fcf9e2bd4ea2c7
props: 17175 331 84 0 5447a85ba28edec0d4a8f6120070e2b2
cpath: /branches/S2_6/utility
copyroot: 27474 /branches/S2_6

id: 1ht0.5qi.r28013/36179
type: file
pred: 1ht0.5qi.r27800/527
count: 4
text: 28013 29775 559 1694 8064f2bff7834c10526095f95e81ccfb
cpath: /branches/S2_6/gen_headers/freeciv_config.h.in
copyroot: 27474 /branches/S2_6

PLAIN
K 11
Makefile.am
V 25
file 1hsy.5ck.r27204/2485
K 19
freeciv_config.h.in
V 26
file 1ht0.5qi.r28013/36179
END
ENDREP
id: 1hsw.5qi.r28013/36519
type: dir
pred: 1hsw.5qi.r27800/859
count: 4
text: 28013 36397 109 109 683733c6afb49de07019c92cd62e28d4
cpath: /branches/S2_6/gen_headers
copyroot: 27474 /branches/S2_6

id: 2lz.5qi.r28013/36715
type: file
pred: 2lz.5qi.r27913/2149
count: 33
text: 28013 1124 29 3270 4caf6293733761fcf6e01dfd24c9dbf9
props: 11087 2677 110 0 2297367bb62237eae251d6a189335c2c
cpath: /branches/S2_6/server/commands.h
copyroot: 27474 /branches/S2_6

id: 15u.5ri.r28013/36974
type: file
pred: 15u.5ri.r27915/1267
count: 30
text: 28013 30363 175 4635 a9a3e893b339585aa6664b8e9f4816ca
props: 11074 1769 111 0 2a5912525b098cb46a1301ee940f7617
cpath: /branches/S2_6/server/srv_log.h
copyroot: 17671 /trunk/server/srv_log.h

id: wj.5qi.r28013/37243
type: file
pred: wj.5ck.r20315/26296
count: 13
text: 28013 28223 36 1739 313f53b49df4469e888496e329d74233
props: 8119 10973 110 0 fdfdab56f53d2388a66f6a5ce0985f95
cpath: /branches/S2_6/server/sanitycheck.h
copyroot: 27474 /branches/S2_6

PLAIN
K 11
Makefile.am
V 22
file 5q.5ck.r27256/390
K 8
advisors
V 23
dir 4n2.5qi.r27951/2388
K 9
aiiface.c
V 25
file 4gm.5ck.r26905/55786
K 9
aiiface.h
V 25
file 4gn.5ck.r26905/56374
K 9
animals.c
V 25
file vnk.5ck.r26905/62972
K 9
animals.h
V 25
file vnm.5ck.r26905/63257
K 6
auth.c
V 25
file 39c.5ck.r20274/32101
K 6
auth.h
V 25
file 39d.5ck.r18977/19170
K 11
barbarian.c
V 22
file lw.5ck.r26434/594
K 11
barbarian.h
V 24
file lx.5ck.r22667/36940
K 14
citizenshand.c
V 25
file 6mz.5ck.r26905/56079
K 14
citizenshand.h
V 25
file 6n0.5ck.r26905/56662
K 10
cityhand.c
V 24
file 10.5ck.r19573/66885
K 10
cityhand.h
V 23
file 4f.0.r13297/423686
K 11
citytools.c
V 21
file 4g.5ck.r27313/65
K 11
citytools.h
V 24
file 4h.5ck.r26863/25714
K 10
cityturn.c
V 22
file 4i.5qi.r27974/146
K 10
cityturn.h
V 24
file 4j.5ck.r24742/16670
K 11
civserver.c
V 23
file 4k.5ck.r27134/1477
K 10
commands.c
V 24
file 2ly.5qi.r27913/1890
K 10
commands.h
V 25
file 2lz.5qi.r28013/36715
K 13
connecthand.c
V 25
file 2dw.5ck.r27336/16958
K 13
connecthand.h
V 24
file 2dx.5ck.r23606/2057
K 9
console.c
V 24
file dd.5ck.r24895/15492
K 9
console.h
V 23
file de.5ck.r19183/7918
K 10
diplhand.c
V 23
file 4m.5qi.r27518/4869
K 10
diplhand.h
V 23
file 4n.5qi.r27518/5128
K 11
diplomats.c
V 23
file vz.5qi.r27489/3902
K 11
diplomats.h
V 23
file w0.5ck.r27461/1674
K 10
edithand.c
V 25
file 3bk.5qi.r27612/42316
K 10
edithand.h
V 25
file 4ez.5ck.r26905/64705
K 6
fcdb.c
V 25
file 6l3.5ck.r26905/56956
K 6
fcdb.h
V 25
file 6l4.5ck.r26905/57239
K 10
gamehand.c
V 23
file 4o.5ck.r27042/1951
K 10
gamehand.h
V 24
file 4p.5ck.r26564/23149
K 9
generator
V 23
dir 2me.5ck.r27071/7433
K 10
handchat.c
V 23
file 4q.5ck.r25915/6654
K 10
handchat.h
V 24
file dj.5ck.r18270/28229
K 9
maphand.c
V 23
file 13.5qi.r27853/1225
K 9
maphand.h
V 23
file 14.5ck.r24759/3742
K 6
meta.c
V 23
file 4s.5ck.r27134/1241
K 6
meta.h
V 23
file 4t.5ck.r27204/3095
K 6
mood.c
V 26
file 112c.5ck.r26905/63547
K 6
mood.h
V 26
file 112e.5ck.r26905/64129
K 8
notify.c
V 25
file 4i2.5ck.r26905/57814
K 8
notify.h
V 25
file 4i3.5ck.r26905/58681
K 9
plrhand.c
V 24
file 4u.5ck.r27223/43157
K 9
plrhand.h
V 23
file 4v.5ck.r26956/6294
K 8
report.c
V 24
file vi.5qi.r27612/41532
K 8
report.h
V 24
file vj.5ck.r24891/20006
K 10
rssanity.c
V 25
file hew.5ck.r26905/55205
K 10
rssanity.h
V 25
file hey.5ck.r26905/55500
K 9
ruleset.c
V 25
file 8w.5qi.r27757/181257
K 9
ruleset.h
V 22
file 8x.5qi.r27725/899
K 13
sanitycheck.c
V 22
file wi.5ck.r27281/872
K 13
sanitycheck.h
V 24
file wj.5qi.r28013/37243
K 12
savecompat.c
V 24
file qva.5ck.r27311/1041
K 12
savecompat.h
V 25
file qvc.5ck.r27279/35421
K 10
savegame.c
V 23
file vl.5qi.r27749/2766
K 10
savegame.h
V 24
file vm.5ck.r20758/19233
K 11
savegame2.c
V 23
file 4m0.5qi.r27842/243
K 11
savegame2.h
V 25
file 4m1.5ck.r26905/58971
K 7
score.c
V 25
file 2eg.5ck.r25535/51502
K 7
score.h
V 24
file 2eh.5ck.r21929/6179
K 9
scripting
V 24
dir 31x.5qi.r27544/11893
K 8
sernet.c
V 22
file 15.5qi.r27833/414
K 8
sernet.h
V 23
file 4y.5ck.r23685/5129
K 10
settings.c
V 24
file 2m0.5qi.r27996/3798
K 10
settings.h
V 24
file 2m1.5qi.r27996/4061
K 11
spacerace.c
V 24
file 9a.5ck.r25063/30975
K 11
spacerace.h
V 21
file 9b.0.r11338/1129
K 9
srv_log.c
V 24
file 15t.5rh.r27915/1004
K 9
srv_log.h
V 25
file 15u.5ri.r28013/36974
K 10
srv_main.c
V 23
file vg.5qi.r27915/1531
K 10
srv_main.h
V 22
file vh.5ck.r27134/762
K 11
stdinhand.c
V 23
file 4z.5qi.r27996/3538
K 11
stdinhand.h
V 24
file 50.5ck.r26100/15471
K 11
techtools.c
V 24
file 33n.5ck.r27058/1887
K 11
techtools.h
V 24
file 33o.5ck.r27058/2134
K 10
unithand.c
V 22
file 18.5qi.r27977/220
K 10
unithand.h
V 24
file 19.5ck.r23027/66151
K 11
unittools.c
V 23
file 1a.5qi.r27632/8170
K 11
unittools.h
V 23
file 1b.5ck.r26956/5564
K 8
voting.c
V 25
file 4ex.5ck.r26905/57525
K 8
voting.h
V 25
file 4ey.5ck.r26905/58399
END
ENDREP
id: z.5qi.r28013/41351
type: dir
pred: z.5qi.r27996/8162
count: 5858
text: 28013 37505 3833 3833 e4103691f3fcfc304a7829e83ec3cbf9
props: 23990 448 166 0 e5026e1cb18fe57b41417951bfac7b19
cpath: /branches/S2_6/server
copyroot: 27474 /branches/S2_6

id: 158.5qi.r28013/41598
type: file
pred: 158.5ck.r24590/9639
count: 20
text: 28013 28287 445 2940 06eee0ea20d05d1e28109fd2bb43ec81
props: 7252 3420 110 0 2297367bb62237eae251d6a189335c2c
cpath: /branches/S2_6/m4/debug.m4
copyroot: 27474 /branches/S2_6

PLAIN
K 8
c++11.m4
V 24
file 18ql.5ck.r26173/880
K 6
c11.m4
V 26
file 17mb.5ck.r25768/35598
K 6
c99.m4
V 25
file 2ez.5ck.r19659/25708
K 10
codeset.m4
V 25
file 4es.5ck.r25335/14690
K 11
compiler.m4
V 23
file 4dr.5ck.r20699/340
K 8
debug.m4
V 25
file 158.5qi.r28013/41598
K 13
fcdb-mysql.m4
V 25
file 6kl.5ck.r25193/13434
K 16
fcdb-postgres.m4
V 24
file 6km.5ck.r24832/9203
K 15
fcdb-sqlite3.m4
V 25
file 6kn.5ck.r25193/14225
K 11
features.m4
V 23
file ug2.5ck.r26253/259
K 12
freetype2.m4
V 22
file 2e2.5ck.r27413/71
K 10
gettext.m4
V 26
file 19jq.5ck.r25866/39558
K 15
gettimeofday.m4
V 25
file 16o.5ck.r19659/29370
K 8
gprof.m4
V 25
file 4jy.5ck.r24590/11309
K 10
gtk-2.0.m4
V 25
file 12w.5ck.r24590/11487
K 10
gtk-3.0.m4
V 24
file 6zi.5ck.r24590/9284
K 14
gtk2-client.m4
V 25
file 19f.5ck.r25193/12590
K 14
gtk3-client.m4
V 24
file 6zj.5ck.r26104/4313
K 8
iconv.m4
V 25
file 12y.5ck.r25335/14460
K 9
lib-ld.m4
V 25
file 4e4.5ck.r25335/15243
K 11
lib-link.m4
V 25
file 4e5.5ck.r25335/14871
K 13
lib-prefix.m4
V 25
file 4e6.5ck.r25335/15056
K 9
locale.m4
V 23
file 2cp.5ck.r25389/467
K 13
magickwand.m4
V 24
file 6nb.5ck.r24590/8866
K 20
mapimg-magickwand.m4
V 23
file 6nc.5ck.r25643/168
K 8
mysql.m4
V 23
file 6ko.5ck.r25662/384
K 6
nls.m4
V 26
file 19js.5ck.r25866/39403
K 12
no-client.m4
V 25
file 2cq.5ck.r15640/16763
K 6
pkg.m4
V 24
file 45j.5ck.r22101/3167
K 5
po.m4
V 26
file 19jt.5ck.r25866/39251
K 11
postgres.m4
V 25
file 6kp.5ck.r25193/14829
K 11
progtest.m4
V 26
file 19ju.5ck.r25866/39091
K 12
qt-client.m4
V 23
file 6k7.5ck.r26897/857
K 6
qt5.m4
V 24
file tqz.5ck.r25363/2153
K 11
readline.m4
V 23
file 133.5ck.r25028/237
K 13
sdl-client.m4
V 23
file 16v.5ck.r26932/591
K 6
sdl.m4
V 24
file 13j.5ck.r24590/9049
K 14
sdl2-client.m4
V 23
file qkc.5ck.r26993/206
K 7
sdl2.m4
V 23
file qwv.5ck.r26294/661
K 8
sound.m4
V 23
file 14o.5ck.r26911/421
K 10
sqlite3.m4
V 23
file 6kq.5ck.r25662/794
K 12
vsnprintf.m4
V 25
file 134.5ck.r21754/19854
K 13
web-client.m4
V 24
file n5w.5qi.r27800/1052
K 4
x.m4
V 23
file 14b.59m.r25662/558
K 13
xaw-client.m4
V 25
file 2j4.5ck.r25193/13798
END
ENDREP
id: 12p.5qi.r28013/43952
type: dir
pred: 12p.5qi.r27800/3348
count: 242
text: 28013 41852 2087 2087 98feef5e15592f051382f6879dcfcc1c
props: 17175 0 94 0 b7d1f67a2107948335edc0c95b3e2bf5
cpath: /branches/S2_6/m4
copyroot: 27474 /branches/S2_6

id: 48.5qi.r28013/44195
type: file
pred: 48.5qi.r27632/12782
count: 252
text: 28013 0 1099 16050 fe9d276b82ca4156acb5e41fe16f2caf
props: 10755 43604 112 0 b4bb2e29c9087472d2e44c6eab39b6d6
cpath: /branches/S2_6/common/unit.h
copyroot: 27474 /branches/S2_6

id: 6kz.5ro.r28013/44451
type: file
pred: 6kz.5i1.r26905/209712
count: 6
text: 28013 28165 29 6090 0f907853f710f606297bc0e50a7f29ae
props: 26905 209665 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /branches/S2_6/common/scriptcore/luascript.h
copyroot: 20274 /trunk/common/scriptcore/luascript.h

PLAIN
K 11
Makefile.am
V 25
file 75b.5ck.r24745/13308
K 17
api_common_intl.c
V 26
file 323.5ho.r20287/110511
K 17
api_common_intl.h
V 26
file 324.5hp.r20287/111645
K 22
api_common_utilities.c
V 24
file 32e.5hq.r27081/9658
K 22
api_common_utilities.h
V 25
file 32f.5hr.r27081/10258
K 18
api_game_effects.c
V 26
file 4jz.5hs.r26905/207667
K 18
api_game_effects.h
V 26
file 4k0.5ht.r26905/209361
K 15
api_game_find.c
V 24
file 321.5hu.r25896/7330
K 15
api_game_find.h
V 26
file 322.5hv.r20287/110812
K 18
api_game_methods.c
V 24
file 33d.5hw.r27059/1303
K 18
api_game_methods.h
V 24
file 33e.5hx.r27059/1602
K 19
api_game_specenum.c
V 26
file 6gu.5hy.r26905/208012
K 19
api_game_specenum.h
V 26
file 6gv.5hz.r26905/209009
K 17
api_signal_base.c
V 26
file 75e.5ck.r26905/207358
K 17
api_signal_base.h
V 26
file 75f.5ck.r26905/208365
K 11
luascript.c
V 26
file 6ky.5i0.r26905/208677
K 11
luascript.h
V 25
file 6kz.5ro.r28013/44451
K 16
luascript_func.c
V 26
file 75g.5ck.r26905/210048
K 16
luascript_func.h
V 26
file 75h.5ck.r26905/207046
K 18
luascript_signal.c
V 25
file 32a.5i2.r25151/81659
K 18
luascript_signal.h
V 26
file 32b.5i3.r20287/111110
K 17
luascript_types.h
V 25
file 327.5i4.r26491/17572
K 18
tolua_common_a.pkg
V 22
file 6l0.5i5.r23190/44
K 18
tolua_common_z.pkg
V 25
file 6l1.5i6.r26491/16730
K 14
tolua_game.pkg
V 24
file 320.5i7.r27081/9965
K 16
tolua_signal.pkg
V 23
file 75i.5ck.r20289/971
END
ENDREP
id: 75a.5qi.r28013/46165
type: dir
pred: 75a.5ck.r27081/11982
count: 51
text: 28013 44747 1405 1405 0a070497d026a746a525c6780ff721ce
props: 20297 4258 210 0 96ce2862a898d58fd2b950172851a0fd
cpath: /branches/S2_6/common/scriptcore
copyroot: 27474 /branches/S2_6

id: 4gp.5qi.r28013/46427
type: file
pred: 4gp.5ck.r27002/6597
count: 72
text: 28013 28758 987 12702 e87b984edef8d9abc1169eebf70b9680
props: 26905 201142 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /branches/S2_6/common/ai.h
copyroot: 27474 /branches/S2_6

id: 2ll.5qi.r28013/46684
type: file
pred: 2ll.5qi.r27621/10359
count: 211
text: 28013 30564 44 24176 08dac6de1b585f1314880586f0f4c171
props: 10836 12026 111 0 18cdb9becb11c47631b7a093e907200c
cpath: /branches/S2_6/common/fc_types.h
copyroot: 27474 /branches/S2_6

PLAIN
K 11
Makefile.am
V 24
file 5h.5ck.r25801/35234
K 14
achievements.c
V 26
file qhc.5ck.r26905/214675
K 14
achievements.h
V 26
file qhe.5ck.r26905/215849
K 9
actions.c
V 25
file r7a.5qi.r27866/82257
K 9
actions.h
V 23
file r7c.5qi.r27733/151
K 4
ai.c
V 26
file 4go.5ck.r26905/200613
K 4
ai.h
V 25
file 4gp.5qi.r28013/46427
K 6
aicore
V 24
dir 18t.5qi.r27612/28586
K 6
base.c
V 25
file 3jw.5ck.r27223/37135
K 6
base.h
V 25
file 3jx.5qi.r27880/14407
K 9
borders.c
V 25
file 4f0.5ck.r27223/36397
K 9
borders.h
V 26
file 4f1.5ck.r26905/213493
K 10
calendar.c
V 27
file 147p.5ck.r26905/214086
K 10
calendar.h
V 27
file 147r.5ck.r26905/215265
K 8
capstr.c
V 22
file dv.5ck.r24976/289
K 8
capstr.h
V 24
file dw.5ck.r18858/97074
K 10
citizens.c
V 26
file 6mx.5ck.r26905/203234
K 10
citizens.h
V 26
file 6my.5ck.r26905/204108
K 6
city.c
V 21
file q.5ck.r26947/614
K 6
city.h
V 23
file 3q.5ck.r26874/2910
K 13
clientutils.c
V 26
file zj9.5ck.r26905/212022
K 13
clientutils.h
V 26
file zjb.5ck.r26905/213199
K 8
combat.c
V 22
file wp.5ck.r27137/126
K 8
combat.h
V 24
file wq.5ck.r24573/25814
K 12
connection.c
V 23
file un.5qi.r27858/9823
K 12
connection.h
V 23
file uo.5qi.r27800/3589
K 9
culture.c
V 27
file 104t.5ck.r26905/202652
K 9
culture.h
V 27
file 104v.5ck.r26905/203523
K 8
dataio.c
V 24
file 15r.5ck.r27027/2551
K 8
dataio.h
V 24
file 15s.5ck.r26834/4081
K 11
diptreaty.c
V 23
file 3r.5qi.r27518/9475
K 11
diptreaty.h
V 23
file 3s.5qi.r27518/9734
K 10
disaster.c
V 26
file b2m.5ck.r26905/214973
K 10
disaster.h
V 26
file b2o.5ck.r26905/216145
K 9
effects.c
V 25
file 2eo.5ck.r26392/11084
K 9
effects.h
V 25
file 2ep.5ck.r27458/49187
K 8
events.c
V 25
file 33h.5ck.r26563/44746
K 8
events.h
V 24
file 3t.5ck.r26563/44988
K 8
extras.c
V 23
file o9u.5qi.r27929/434
K 8
extras.h
V 23
file o9w.5qi.r27695/208
K 12
fc_cmdhelp.c
V 26
file 76j.5ck.r26905/216438
K 12
fc_cmdhelp.h
V 26
file 76k.5ck.r26905/216731
K 14
fc_interface.c
V 26
file 4up.5ck.r26905/201770
K 14
fc_interface.h
V 26
file 4uq.5ck.r26905/202358
K 10
fc_types.h
V 25
file 2ll.5qi.r28013/46684
K 15
featured_text.c
V 26
file 4h3.5ck.r26905/212899
K 15
featured_text.h
V 26
file 4h4.5ck.r26905/213786
K 6
game.c
V 23
file 3u.5qi.r27751/1095
K 6
game.h
V 21
file 3v.5ck.r27377/50
K 19
generate_packets.py
V 25
file 2f4.5ck.r27339/27191
K 12
government.c
V 25
file he.5ck.r25382/101248
K 12
government.h
V 24
file hf.5ck.r25151/83855
K 6
idex.c
V 24
file qo.5ck.r25151/84101
K 6
idex.h
V 24
file qp.5ck.r18858/92434
K 13
improvement.c
V 22
file vb.5ck.r27036/203
K 13
improvement.h
V 23
file vc.5ck.r26605/3666
K 5
map.c
V 22
file r.5qi.r27606/1159
K 5
map.h
V 23
file 41.5ck.r27446/5985
K 8
mapimg.c
V 26
file 6n9.5ck.r26905/214381
K 8
mapimg.h
V 26
file 6na.5ck.r26905/215559
K 15
metaknowledge.c
V 26
file siq.5ck.r26905/206154
K 15
metaknowledge.h
V 26
file sis.5ck.r26905/206455
K 10
movement.c
V 25
file 2xv.5qi.r27978/10772
K 10
movement.h
V 25
file 2xw.5ck.r26369/89711
K 13
multipliers.c
V 27
file 197b.5ck.r26905/218478
K 13
multipliers.h
V 27
file 197d.5ck.r26905/219360
K 18
name_translation.h
V 26
file 4k1.5ck.r26905/217596
K 8
nation.c
V 24
file il.5ck.r26881/35006
K 8
nation.h
V 22
file im.5ck.r27000/284
K 9
packets.c
V 23
file 43.5ck.r27337/9550
K 11
packets.def
V 24
file 2f5.5qi.r27823/2646
K 9
packets.h
V 24
file 44.5ck.r27336/26555
K 8
player.c
V 22
file 45.5ck.r27147/309
K 8
player.h
V 24
file 46.5ck.r26824/28997
K 14
requirements.c
V 24
file 2wq.5ck.r26954/4125
K 14
requirements.h
V 23
file 2wr.5qi.r27695/463
K 10
research.c
V 25
file 4ro.5qi.r27900/33355
K 10
research.h
V 23
file 4rp.5qi.r27751/838
K 10
rgbcolor.c
V 26
file 6i6.5ck.r26905/218776
K 10
rgbcolor.h
V 26
file 6i7.5ck.r26905/219068
K 6
road.c
V 26
file 6pq.5ck.r26905/202943
K 6
road.h
V 25
file 6pr.5qi.r27880/13889
K 10
scriptcore
V 24
dir 75a.5qi.r28013/46165
K 11
spaceship.c
V 23
file 98.5ck.r26349/9773
K 11
spaceship.h
V 24
file 99.5ck.r26349/10015
K 12
specialist.c
V 23
file 33f.5ck.r22372/258
K 12
specialist.h
V 25
file 33g.5ck.r23560/15220
K 7
style.c
V 26
file zzb.5ck.r26905/204398
K 7
style.h
V 26
file zzd.5ck.r26905/204988
K 6
team.c
V 23
file 33i.5ck.r25891/212
K 6
team.h
V 23
file 33j.5ck.r26183/314
K 6
tech.c
V 22
file t.5ck.r27149/7328
K 6
tech.h
V 23
file u.5qi.r27880/13634
K 9
terrain.c
V 24
file 2fp.5ck.r27149/7564
K 9
terrain.h
V 24
file qs.5qi.r27880/14146
K 6
tile.c
V 25
file 2ys.5qi.r27621/10104
K 6
tile.h
V 25
file 2yt.5ck.r26109/28279
K 13
traderoutes.c
V 25
file bf8.5qi.r27552/33422
K 13
traderoutes.h
V 25
file bfa.5qi.r27552/33689
K 8
traits.h
V 26
file 7k3.5ck.r26905/202065
K 6
unit.c
V 23
file v.5qi.r27632/12531
K 6
unit.h
V 24
file 48.5qi.r28013/44195
K 10
unitlist.c
V 25
file 39m.5qi.r27612/25885
K 10
unitlist.h
V 25
file 39n.5qi.r27612/26147
K 10
unittype.c
V 24
file v9.5qi.r27612/26659
K 10
unittype.h
V 24
file va.5qi.r27880/13372
K 9
version.c
V 23
file oe.5ck.r26171/7093
K 9
version.h
V 23
file e7.5ck.r26171/7331
K 9
victory.c
V 26
file qex.5ck.r26905/217020
K 9
victory.h
V 26
file qez.5ck.r26905/217896
K 8
vision.c
V 22
file 4dm.5qi.r27639/98
K 8
vision.h
V 24
file 4dn.5ck.r24742/9986
K 12
workertask.c
V 26
file llw.5ck.r26905/206753
K 12
workertask.h
V 26
file lly.5ck.r26905/212604
K 10
worklist.c
V 25
file o8.5ck.r19259/402799
K 10
worklist.h
V 24
file o9.5ck.r18858/98299
END
ENDREP
id: p.5qi.r28013/52253
type: dir
pred: p.5qi.r27978/16341
count: 4165
text: 28013 46948 5292 5292 e3055108a80c2745104d6a964103716d
props: 23743 0 112 0 b2bc91bf125d83375389d51f25ff2c2f
cpath: /branches/S2_6/common
copyroot: 27474 /branches/S2_6

PLAIN
K 9
ABOUT-NLS
V 24
file fu.5ck.r27270/69307
K 7
AUTHORS
V 24
file 5u.5ck.r22143/14016
K 7
COPYING
V 19
file 1h.0.r9643/400
K 9
ChangeLog
V 26
file 6l.5ck.r27473/7455495
K 7
INSTALL
V 21
file 6.5qi.r27778/886
K 11
Makefile.am
V 22
file 59.5ck.r27213/499
K 4
NEWS
V 24
file 6m.5ck.r25634/30702
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 21
dir 8.5qi.r27935/1480
K 10
autogen.sh
V 24
file 12o.5ck.r25794/4003
K 9
bootstrap
V 23
dir 2p5.5ck.r27114/4172
K 6
client
V 21
dir d.5qi.r28009/9468
K 6
common
V 22
dir p.5qi.r28013/52253
K 12
configure.ac
V 23
file 149.5qi.r27699/341
K 4
data
V 22
dir w.5qi.r28006/16628
K 12
dependencies
V 22
dir 2yu.5qi.r27818/268
K 3
doc
V 22
dir k7.5qi.r27992/2308
K 10
fc_version
V 25
file 2lo.5qj.r27866/91169
K 11
gen_headers
V 25
dir 1hsw.5qi.r28013/36519
K 2
m4
V 24
dir 12p.5qi.r28013/43952
K 7
scripts
V 23
dir 2yo.5ck.r27213/1366
K 6
server
V 22
dir z.5qi.r28013/41351
K 5
tests
V 22
dir 2g9.5ck.r27023/734
K 5
tools
V 23
dir 4pj.5qp.r28004/2518
K 12
translations
V 23
dir t0a.5qi.r27967/2916
K 7
utility
V 23
dir 1c.5qi.r28013/35931
K 3
vms
V 25
dir u9.5ck.r21528/1396085
K 5
win32
V 23
dir 2eu.5ck.r27378/3030
END
ENDREP
id: 3.5qi.r28013/53666
type: dir
pred: 3.5qi.r28009/10876
count: 19095
text: 28013 52499 1154 1154 3ee108ae2fe9786e15b019383c5b9174
props: 23244 4830 282 0 e4bb46e81629a60eef613b169b23a9ea
cpath: /branches/S2_6
copyroot: 27474 /branches/S2_6

PLAIN
K 5
S1_14
V 21
dir 3.21.r18109/18803
K 4
S2_0
V 21
dir 3.10x.r21862/4178
K 4
S2_1
V 22
dir 3.59e.r20026/11014
K 4
S2_2
V 21
dir 3.5cy.r21861/5036
K 4
S2_3
V 21
dir 3.5f2.r24391/5183
K 4
S2_4
V 22
dir 3.5ii.r28011/10513
K 4
S2_5
V 22
dir 3.5kv.r28010/10416
K 4
S2_6
V 22
dir 3.5qi.r28013/53666
K 11
freeciv-web
V 22
dir 3.5bl.r13594/14918
END
ENDREP
id: 1.0.r28013/54264
type: dir
pred: 1.0.r28011/11110
count: 8743
text: 28013 53909 342 342 4c0853ce3e5824bb611289ef3f24dec2
cpath: /branches
copyroot: 0 /

PLAIN
K 8
branches
V 20
dir 1.0.r28013/54264
K 4
tags
V 19
dir 2.0.r27200/6414
K 5
trunk
V 22
dir 3.5ck.r28012/53321
K 7
website
V 21
dir 3ge.0.r22980/2263
END
ENDREP
id: 0.0.r28013/54588
type: dir
pred: 0.0.r28012/53715
count: 28013
text: 28013 54421 154 154 a3ba7ee691ab4d4e820c52210136956b
cpath: /
copyroot: 0 /

4gp.5qi.t28012-1 modify true false /branches/S2_6/common/ai.h

1ht0.5qi.t28012-1 modify true false /branches/S2_6/gen_headers/freeciv_config.h.in

15u.5ri.t28012-1 modify true false /branches/S2_6/server/srv_log.h

2ll.5qi.t28012-1 modify true false /branches/S2_6/common/fc_types.h

4uo.5qi.t28012-1 modify true false /branches/S2_6/utility/bitvector.h

54.5qi.t28012-1 modify true false /branches/S2_6/utility/log.h

48.5qi.t28012-1 modify true false /branches/S2_6/common/unit.h

2lz.5qi.t28012-1 modify true false /branches/S2_6/server/commands.h

gb.5qi.t28012-1 modify true false /branches/S2_6/utility/speclist.h

em.5qi.t28012-1 modify true false /branches/S2_6/utility/timing.h

6kz._0.t28012-1 modify true false /branches/S2_6/common/scriptcore/luascript.h

wj.5qi.t28012-1 modify true false /branches/S2_6/server/sanitycheck.h

158.5qi.t28012-1 modify true false /branches/S2_6/m4/debug.m4


54588 54738
