DELTA 16114 0 239
SVN  ιTλ0# §: Ό 	§7½ R£> Ϋ'¬ |+ Ψ`tclient.conn.playing = NULL;
  client.conn.observer = FALSE;

  client.conn.playing = NULL;
  client.conn.observer = FALSEC_S_PREPARING == newstate
      && (client_has_player() || client_is_observer())) {
    /* Reset the delta-state. */
    conn_clear_packet_cache(&client.conn);ENDREP
DELTA 16110 0 2178
SVN  » ½&H6   ΫEq  εg F| h΅ A° δV C 
x  @  A ¬  /* utility */
#include "fcintl.h"
#include "ioz.h"
#include "log.h"
#include "mem.h"
#include "shared.h"
#include "support.h"

/* aicore */
#include "cm.h"

/* common */
#include "base.h"
#include "city.h"
#include "connection.h"
#include "government.h"
#include "idex.h"
#include "map.h"
#include "nation.h"
#include "packets.h"
#include "player.h"
#include "spaceship.h"
#include "specialismap_init();
  game_rulesetgame_ruleset_free();
  cm_free(Initialize the objects which will read from a ruleset/
void game_ruleset_init(void)
{
  ruleset_cachegame_ruleset

..ENDREP
DELTA 16137 0 1631
SVN      / 1  γ N ϋ| 0 & E;n ΄}connection_detachconnection_detach(pconnif ((res = connection_attach(pconn, pplayer, TRUE))) {
    if (pplayer) {
      cmd_reply(CMD_OBSERVE, caller, C_OK, _("%s now observes %s"),
                pconn->username,
                player_name(pplayer));
    } else {
      cmd_reply(CMD_OBSERVE, caller, C_OK, _("%s now observes"),
                pconn->username);
    }
  }

  end:;
  /* free our args */Take over a player. If a connection already has control of that player, 
  disallow it. 

  If there are two arguments, treat the first as the connection name and the
  second as the player name (only hack and the console can do this).
  Otherwise, there should be one argument, that being the player that the 
  caller wants to take.
**********************************************  &ϋUob Q S ; N enY SP S‘< G¦Ά ¨< ͺDU _°, :²) Ώ( ~h CΖa E²{
 ¬z 7Ώ, Ία!if (!is_newgame) {
      cmd_reply(CMD_TAKE, caller, C_FAIL,
                _("You cannot issue \"/take -\" when "
                  "the game already started."));
      goto end;
    }
  if (pplayer) {
      /* Make it human! */
      pplayer->ai_data.control = FALSE;
    }
    /* We are reassigning this nation, so we need to detach the current
     * user to set a new one. */
    conn_list_iterate(pplayer->connections, aconn) {
      if (!aconn->observer) {
        connection_detach(aconn);
      }
    } conn_list_iterate_end;NULL != pconn->playing || pconn->observer) {
    char connection_detach(pconnNow attach to new player */
  if ((res = connection_attach(pconn, pplayer, FALSE))) {send_updated_vote_totals(NULL);
  } else {
    cmd_reply(CMD_TAKE, caller, C_FAIL,
              _("%s failed to attach to any player."),
              pconn->username);static bool detach1];
  enum m_pre_result match_result;
  struct connection *pconn = NULL;
  struct player *pplayer = NULLif (pplayer) {
    cmd_reply(CMD_DETACH, caller, C_COMMENT,
              _("%s detaching from %s);
  } else {
    cmd_reply(CMD_DETACH, caller, C_COMMENT,
              _("%s no longer observing."), pconn->username);
  }

  /* Actually do the detaching. */
  connection_detach(pconn);

  /* The user explicitly wanted to detach, so if a player is marked for him,
   * reset its username. */
  players_iterate(aplayer) {
    if (0 == strncmp(aplayer->username, pconn->username, MAX_LEN_NAME)check_for_full_turn_done();ENDREP
DELTA 16084 0 4675
SVN  ΣHΤ;*P m  G7 \j 8v ΏIx~ N«?V ϋCΨnotifytdinhand.h"
#include "techtools.h"
#include "unithand.h"
#include "unittools.h"
#include "voting.h"

#include "srv_maiInitial packets should have been sent before calling this function.
  See comment in connecthand.c::establish_new_connection()void send_all_info(struct conn_list *dest, bool force)
{
  conn_list_iterate(dest, pconn) {
    if (conn_controls_player(pconn)) {
      send_attribute_block(pconn->playing, pconn);
    }
  } conn_list_iterate_end;

  /* Resend player info because it could have more infos (e.g. embassy). */
  send_player_info_c(NULL, dest);
  send_map_info(ENDREP
DELTA 16076 12681 4779
SVN  _~
0 ‘v ° βX’
void game_ruleset_init(void);
void game_rulesetENDREP
DELTA 16112 37231 6966
SVN  ΪDΪ	v δH  Iδcv ςθB/* Don't use conn_list_iterate here because connection_detach() can be
   * recursive and free the next connection pointer. */
  while (conn_list_size(pplayer->connections) > 0) {
    connection_detach(conn_list_get(pplayer->connections, 0));
  }ENDREP
DELTA 16114 265 1559
SVN      /6 κ ₯ 1κ ξU <ψC Tη? υCύ¦ ¬σ  bool preparing_client_state = FALSEplayer_slotpreparing_client_state = TRUE
  if (preparing_client_state) {
    set_client_state(C_S_PREPARINGruleset_free();
  game_ruleset_init();  ΕeΖJee Εe     city_id);
    return;
  }

  if (can_client_issue_orders()) {
    improvement_iterate(pimprove) {ENDREP
DELTA 12637 2004 700
SVN  pY 0  -oY ], bool check);
void show_players(struct connection *caller);

bool load_command(struct connection *caller,
		  const char *filename, bool check);
bool start_command(struct connection *caller, bool check, bool notify);ENDREP
DELTA 15828 2491 3803
SVN      @ €u  ¦| G  ₯> ¨H Έd ΅Q½nͺ σ;v sτ7 Zέx B₯  ½?e Σ'Η# O{ H{ ή#M# Jω7 Qϊ B₯  q'  # W:
serverserverint user_flags;
  char **flaglist;
  int iser unit flag names */
  flaglist = secfile_lookup_str_vec(file, &user_flags,
		  		    "flags.names");

  if (user_flags > MAX_NUM_USER_UNIT_FLAGS) {
    ruleset_error(LOG_FATAL, "\"%s\": Too many user unit type flags!",
                  filename);
  }

  for (i = 0; i < user_flags; i++) {
    set_user_unit_flag_name(F_USER_FLAG_1 + i, flaglist[i]);
  }
  for (; i < MAX_NUM_USER_UNIT_FLAGS; i++) {
    set_user_unit_flag_name(F_USER_FLAG_1 + i, NULL);
  }
  if (flaglist) {
    free(flaglist);
  }...  
servermain_sq   = secfile_lookup_int_default(file, -1,
                                                         "%s.vision_main_sq",
      invis_sq  = secfile_lookup_int_default(file, -1,
                                                         "%s.vision_invis_sq",
      oceanic_graphic, 
	       secfile_lookup_str_default(file, "",
                                          "%s.oceanic_graphic", styles[i]));
    sz_strlcpy(city_styles[i].oceanic_graphic_alt, 
	       secfile_lookup_str_default(file, "",
                                          "%s.oceanic_  Load ruleset file.

  /* section: datafile *//* section: tileset *//* section: about */  ³*οBβjW i[/ k ;M j+  V   8# G’: 
­?  &―+% Ϊ± I €hCt C°5 +·j¬ YΒ)m ΈZΫh l> sz_strlcpy(game.control.name, text);

  text = secfile_lookup_str_default(&file, "", "about.description");
  if (text[0] != '\0') {
    /* Ruleset/modpack description found */
    sz_strlcpy(game.control.description, text);
  } else {
    /* No description */
    game.control.description[0] = '\0';
  }

  /* section: options */
  lookup_tech_list(&file, "options", "global_init_techs",
                   game.server.rgame.global_init_techs, filename);
  lookup_building_list(&file, "options", "global_init_buildings",
                       game.server.rgame.global_init_buildings, filename);

  /* section: civstyle */
  game.info.base_pollution
    = secfile_lookup_int_default(&file, RS_DEFAULT_BASE_POLLUTION,
                                 "civstyle.base_pollution");
  game.info.happy_cost
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_HAPPY_COST,
                                         RS_MIN_HAPPY_COST,
                                         RS_MAX_HAPPY_COST,
                                         "civstyle.happy_cost");
  game.info.food_cost
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_FOOD_COST,
                                         RS_MIN_FOOD_COST,
                                         RS_MAX_FOOD_COST,
                                         "civstyle.food_cost");
  /* TODO: move to global_unit_options */
  game.info.base_bribe_cost
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_BASE_BRIBE_COST,
                                         RS_MIN_BASE_BRIBE_COST,
                                         RS_MAX_BASE_BRIBE_COST,
                                         "civstyle.base_bribe_cost");
  /* TODO: move to global_unit_options */
  game.info.ransom_gold
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_RANSOM_GOLD,
                                         RS_MIN_RANSOM_GOLD,
                                         RS_MAX_RANSOM_GOLD,
                                         "civstyle.ransom_gold");
  /* TODO: move to global_unit_options */
  game.info.pillage_select
    = secfile_lookup_bool_default(&file, RS_DEFAULT_PILLAGE_SELECT,
                                         "civstyle.pillage_select");
  /* TODO: move to global_unit_options */
  game.info.upgrade_veteran_loss
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_UPGRADE_VETERAN_LOSS,
                                         RS_MIN_UPGRADE_VETERAN_LOSS,
                                         RS_MAX_UPGRADE_VETERAN_LOSS,
                                         "civstyle.upgrade_veteran_loss");
  /* TODO: move to global_unit_options */
  game.info.autoupgrade_veteran_loss
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_UPGRADE_VETERAN_LOSS,
                                         RS_MIN_UPGRADE_VETERAN_LOSS,
                                         RS_MAX_UPGRADE_VETERAN_LOSS,
                                         "civstyle.autoupgrade_veteran_loss");
  /* TODO: move to new section research */
  game.info.base_tech_cost
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_BASE_TECH_COST,
                                         RS_MIN_BASE_TECH_COST,
                                         RS_MAX_BASE_TECH_COST,
                                         "civstyle.base_tech_cost");

  food_ini = secfile_lookup_int_vec(&file, &game.info.granary_num_inis,
                                default "
                       "value %d.", RS_DEFAULT_GRANARY_FOOD_INI);
    game.info.granary_num_inis = 1;
    game.info.granary_food_ini[0] = RS_DEFAULT_GRANARY_FOOD_INI        if (i == 0) {
          food_ini[i] = RS_DEFAULT_GRANARY_FOOD_INI;
        } else {
          food_ini[i] = food_ini[i - 1];
        }
        freelog(LOG_ERROR, "Bad value for granary_food_ini[%i]. Using %i.",
                
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_GRANARY_FOOD_INC,
                                         RS_MIN_GRANARY_FOOD_INC,
                                         RS_MAX_GRANARY_FOOD_INC,
                                         "civstyle.granary_food_inc_min_max(ruleset_error, &file,
                                           RS_DEFAULT_CITY_CENTER_OUTPUT,
                                           RS_MIN_CITY_CENTER_OUTPUT,
                                           RS_MAX_CITY_CENTER_OUTPUT,
                                           "civstyle.min_city_center_%s",
                                           get_output_identifier(o));
  } output_type_iterate_end/* This only takes effect if citymindist is set to 0. */
  game.info.min_dist_bw_cities
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_CITIES_MIN_DIST,
                                         RS_MIN_CITIES_MIN_DIST,
                                         RS_MAX_CITIES_MIN_DIST,
                                         "civstyle.min_dist_bw_cities");
  game.info.init_vis_radius_sq
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_VIS_RADIUS_SQ,
                                         RS_MIN_VIS_RADIUS_SQ,
                                         RS_MAX_VIS_RADIUS_SQ,
                                         "civstyle.init_vis_radius_sq");

  game.info.gold_upkeep_style
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_GOLD_UPKEEP_STYLE,
                                         RS_MIN_GOLD_UPKEEP_STYLE,
                                         RS_MAX_GOLD_UPKEEP_STYLE,
                                         "civstyle.gold_upkeep_style");

  /* TODO: move to new section research */
  game.info.tech_cost_style
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_TECH_COST_STYLE,
                                         RS_MIN_TECH_COST_STYLE,
                                         RS_MAX_TECH_COST_STYLE,
                                         "civstyle.tech_cost_style");
  /* TODO: move to new section research */
  game.info.tech_leakage
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_TECH_LEAKAGE,
                                         RS_MIN_TECH_LEAKAGE,
                                         RS_MAX_TECH_LEAKAGE,
                                         "civstyle.tech_leakage");
  if (game.info.tech_cost_style == 0 && game.info.tech_leakage != 0) {
    freelog(LOG_ERROR,
        
  /* section: illness */
  game.info.illness_on
    = secfile_lookup_bool_default(&file, RS_DEFAULT_ILLNESS_ON,
                                  "illness.illness_on");
  game.info.illness_base_factor
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_ILLNESS_BASE_FACTOR,
                                         RS_MIN_ILLNESS_BASE_FACTOR,
                                         RS_MAX_ILLNESS_BASE_FACTOR,
                                         "illness.illness_base_factor");
  game.info.illness_min_size
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_ILLNESS_MIN_SIZE,
                                         RS_MIN_ILLNESS_MIN_SIZE,
                                         RS_MAX_ILLNESS_MIN_SIZE,
                                         "illness.illness_min_size");
  game.info.illness_trade_infection
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_ILLNESS_TRADE_INFECTION_PCT,
                                         RS_MIN_ILLNESS_TRADE_INFECTION_PCT,
                                         RS_MAX_ILLNESS_TRADE_INFECTION_PCT,
                                         "illness.illness_trade_infection");
  game.info.illness_pollution_factor
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_ILLNESS_POLLUTION_PCT,
                                         RS_MIN_ILLNESS_POLLUTION_PCT,
                                         RS_MAX_ILLNESS_POLLUTION_PCT,
                                         "illness.illness_pollution_factor");

  /* section: incite_cost */
  game.info.base_incite_cost
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_INCITE_BASE_COST,
                                         RS_MIN_INCITE_BASE_COST,
                                         RS_MAX_INCITE_BASE_COST,
                                        
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_INCITE_IMPROVEMENT_FCT,
                                         RS_MIN_INCITE_IMPROVEMENT_FCT,
                                         RS_MAX_INCITE_IMPROVEMENT_FCT,
                                         "incite_cost.improvement_factor");
  game.info.incite_unit_factor
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_INCITE_UNIT_FCT,
                                         RS_MIN_INCITE_UNIT_FCT,
                                         RS_MAX_INCITE_UNIT_FCT,
                                         "incite_cost.unit_factor");
  game.info.incite_total_factor
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_INCITE_TOTAL_FCT,
                                         RS_MIN_INCITE_TOTAL_FCT,
                                         RS_MAX_INCITE_TOTAL_FCT,
                                         "incite_cost.total_factor");

  /* section: global_unit_options */
  game.info.slow_invasions
    = secfile_lookup_bool_default(&file, RS_DEFAULT_SLOW_INVASIONS,
                                  "global_unit_options.slow_invasions");

  /* section: combat_rules */
  game.info.killstack
    = secfile_lookup_bool_default(&file, RS_DEFAULT_KILLSTACK,
                                  "combat_rules.killstack");
  game.info.tired_attack
    = secfile_lookup_bool_default(&file, RS_DEFAULT_TIRED_ATTACK,
                                  "combat_rules.tired_attack");

  /* section: borders */
  game.info.border_city_radius_sq
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_BORDER_RADIUS_SQ_CITY,
                                         RS_MIN_BORDER_RADIUS_SQ_CITY,
                                         RS_MAX_BORDER_RADIUS_SQ_CITY,
                                         "borders.radius_sq_city");
  game.info.border_size_effect
    = secfile_lookup_int_default_min_max(ruleset_error, &file,
                                         RS_DEFAULT_BORDER_SIZE_EFFECT,
                                         RS_MIN_BORDER_SIZE_EFFECT,
                                         RS_MAX_BORDER_SIZE_EFFECT,
                                         "borders.size_effect");

  /* section: calendar */
  game.info.calendar_skip_0
    = secfile_lookup_bool_default(&file, RS_DEFAULT_CALENDAR_SKIP_0,
                                  "calendar.skip_year_0");  sz_strlcpy(game.info.positive_year_label,
             _(secfile_lookup_str_default(&file,
                                          RS_DEFAULT_POS_YEAR_LABEL
                                          RS_DEFAULT_NEG_YEAR_LABEL,
                                          "calendar.negative_label")));

  /* section: teams */main_sq = b->vision_main_sq;
    packet.vision_invis_sq = b->vision_invisoceanic_graphic, city_styles[k].oceanic_graphic);
    sz_strlcpy(city_p.oceanic_graphic_alt, city_styles[k].oceanic_server.rgame.global_init_techs));
  assert(ARRAY_SIZE(misc_p.global_init_techs) ==
	 ARRAY_SIZE(game.server.rgame.global_init_techs));
  memcpy(misc_p.global_init_techs, game.servergame_ruleset_free();
  game_ruleset_init();
 i < MAX_NUM_TECH_LIST
       && game.server.rgame.global_init_techs[i] != A_LAST; i++) {
    if (game.server i < MAX_NUM_TECH_LIST
         && game.server.rgame.global_init_techs[i] != A_LAST; i++) {
      Tech_type_id tech = game.serverENDREP
DELTA 16056 2290 63
SVN  )*"  ’17"
NETWORK_CAPSTRING_OPTIONAL=""
ENDREP
DELTA 16112 46878 1964
SVN  ©~³« G E NΘ$ Wγ@ \G QΘ| ]o P±"9 S΄y Ώ_W Wγ@§ NΘ ₯Γ Yθ>h G  ’	χ1l m % :
 G  U’|W ¦^Send all packets that needs the connection to handle our server statestatic void send_state_specific_packets(struct connection *pconn)
{
  /* Initial packets don't need to be resent.  See comment for
   * connecthand.c::establish_new_connection(). */
  switch (server_state()) {
  case S_S_RUNNING:
    send_packet_freeze_hint(pconn);
    send_all_info(pconn->self, TRUE);
    send_diplomatic_meetings(pconn);
    send_packet_thaw_hint(pconn);
    dsend_packet_start_phase(pconn, game.info.phase);
    break;

  case S_S_OVER:
    send_packet_freeze_hint(pconn);
    send_all_info(pconn->self, TRUE);
    send_packet_thaw_hint(pconn);
    report_final_scores(pconn->self);
    break;

  case S_S_INITIAL:
  case S_S_GENERATING_WAITING:
    break
  Here we send initial packets:
  - ruleset datas.
  - server settings.
  - scenario info.
  - game info.
  - players infos (note it's resent in srv_main.c::send_all_info(),
      see comment there).
  - connections infos.
  ... and additionnal packets if the game already star  send_scenario_info(dest);
  send_game_info(dest);

  if ((pplayer = find_player_by_user(pconn->username))
      && connection_attach(pconn, pplayer, FALSE)) {
    /* a player has already been created for this user, reconnect */

    if (S_S_INITIAL == server_state()) {
      send_player_info_c(NULL, dest);
    }
    send_conn_info(game.est_connections, dest);
    send_state_specific_packets(pconn);

  } else {
    if (S_S_INITIAL == server_state() && game.info.is_new_game) {
      if (!connection_attach(pconn, NULL, FALSE))
                pconn->username);
      }
    }
    send_player_info_c(NULL, dest);
    send_conn_info(game.est_connections, dest);
  }

  if (NULL == pplayer) {
    /* Else this has already been done in connection_attach(). */
    restore_access_level(pconn);
    send_conn_info(dest, game.est_connections);
  }if (NULL != pplayer) {
    /* Else, no need to do anything. */
    send_running_votes(pconn);
    send_updated_vote_totals(NULL);

    reset_all_start_commands();
    (void) send_server_info_to_metaserver(META_INFO)send the rejection packet to the clientnotify_if_first_access_level_is_available();

  check_for_full_turn_done();

  delayed_disconnect--;
}

  team_remove_player(pplayer);
      server_player_init(pplayer, FALSE, TRUE);
      /* Make it human! */
      pplayer->ai_data.control = FALSE;

      if (!pplayer->was_created && NULL == pplayer->nation) {
        /* Temporarily set player_name() to username. */
        sz_strlcpy(pplayer->name, pconn->username);
      }

      aifill(game.info.aifill);
    }game.info.auto_ai_toggle && pplayer->ai_data.control) {
      toggle_ai_player_direct(NULL, pplayer);
    }

    send_player_info_c(pplayer, game.est_connections);
  }

  /* We don't want the connection's username on another player. */
  players_iterate(aplayer) {
    if (aplayer != pplayer
        && 0 == strncmp(aplayer->username, pconn->username, MAX_LEN_NAME)) {
      sz_strlcpy(aplayer->username, ANON_USER_NAME);
      send_player_info_c(aplayer, NULL);
    }
  } players_iterate_end;
  /* Reset the delta-state. */
  send_conn_info(pconn->self, game.est_connections);    /* Client side. */
  conn_clear_packet_cache(pconn);                       /* Server side. */

  /* Send new infos. */
  send_state_specific_packets(pconn);

  return TRUE;
}
  
struct player *pplayer;

  RETURN_IF_FAIL(pconn != NULL);

  if (NULL != (pplayer = pconn->playing)) {
    bool was_connected = pplayer->is_connected;

    conn_list_unlink(pplayer->connections, pconn);

    pplayerplayer->connections, aconn) {
      if (!aconn->observer) {
        pplayer->is_connected = TRUE;
        break;
      }
    } conn_list_iterate_end;

    if (was_connected && !pplayer->is_connected) {
      if (!pplayer->was_created
          && S_S_INITIAL == server_state()
          && game.info.is_new_game) {
        /* Remove player. */
        conn_list_iterate(pplayer->connections, aconn) {
          /* Detach all. */
          if (aconn != pconn) {
            notify_conn(aconn->self, NULL, E_CONNECTION,
                        FTC_SERVER_INFO, NULL,
                        _("detaching from %s."),
                        player_name(pplayer));
            /* Recursive... but shouldn't be problem. */
            connection_detach(aconn);
          }
        } conn_list_iterate_end;

        /* Actually do the removal. */
        server_remove_player(pplayer);
        send_player_slot_info_c(pplayer, NULL);
        aifill(game.info.aifill);
        reset_all_start_commands();
      } else {
        /* Aitoggle the player if no longer connected. */
        if (game.info.auto_ai_toggle && !pplayer->ai_data.control) {
          toggle_ai_player_direct(NULL, pplayer);
          /* send_player_info() was formerly updated by
           * toggle_ai_player_direct(), so it must be safe to send here now?
           *
           * At other times, data from send_conn_info() is used by the
           * client to display player information.
           * See establish_new_connection().
           */
          freelog(LOG_VERBOSE,
                  "connection_detach() calls send_player_slot_info_c()");
          send_player_info_c(pplayer, NULL);

          reset_all_start_commands();
        }
      }
    }

    pconn->playing = NULL;
  }

  pconn->observer = FALSE;
  restore_access_level(pconn);

  cancel_connection_votes(pconn);
  send_updated_vote_totals(NULL);

  send_conn_info(pconn->self, game.est_connections);
}
ENDREP
id: 3u.5cy.r16142/25234
type: file
pred: 3u.5cy.r16127/748
count: 314
text: 16142 354 652 24230 11f18711ae6255b6464668cf52b76baa
props: 11041 20516 112 0 779057fa36f350a13e5c75663a7074d1
cpath: /branches/S2_2/common/game.c
copyroot: 15925 /branches/S2_2

id: 3v.5cy.r16142/25489
type: file
pred: 3v.5cy.r16076/18513
count: 253
text: 16142 4209 71 17022 44d94b334018f02c787b263713c7a585
props: 11057 32714 112 0 2cf57fb6d11b8ba51814c6d419f0189e
cpath: /branches/S2_2/common/game.h
copyroot: 15925 /branches/S2_2

PLAIN
K 11
Makefile.am
V 24
file 5h.5ck.r15882/11922
K 4
ai.c
V 25
file 4go.5ck.r15837/11140
K 4
ai.h
V 25
file 4gp.5ck.r15837/11321
K 6
aicore
V 24
dir 18t.5cy.r16016/43938
K 6
base.c
V 24
file 3jw.5ck.r15838/4356
K 6
base.h
V 24
file 3jx.5ck.r15888/8211
K 9
borders.c
V 24
file 4f0.5cy.r15976/1933
K 9
borders.h
V 24
file 4f1.5cy.r15976/2132
K 8
capstr.c
V 24
file dv.5ck.r15284/31880
K 8
capstr.h
V 24
file dw.5bk.r14881/38989
K 6
city.c
V 23
file q.5ck.r15911/11932
K 6
city.h
V 23
file 3q.5ck.r15852/9098
K 8
combat.c
V 23
file wp.5ck.r15792/2238
K 8
combat.h
V 21
file wq.0.r12783/4096
K 12
connection.c
V 23
file un.5ck.r15657/2091
K 12
connection.h
V 23
file uo.5ck.r15657/2333
K 8
dataio.c
V 25
file 15r.5ck.r15911/11687
K 8
dataio.h
V 23
file 15s.0.r10480/10050
K 11
diptreaty.c
V 23
file 3r.5cy.r16122/7994
K 11
diptreaty.h
V 20
file 3s.0.r9582/5141
K 9
effects.c
V 24
file 2eo.5ck.r15795/2760
K 9
effects.h
V 24
file 2ep.5ck.r15795/3002
K 8
events.c
V 25
file 33h.5cy.r16074/66447
K 8
events.h
V 24
file 3t.5cy.r16074/66706
K 10
fc_types.h
V 25
file 2ll.5ck.r15860/12135
K 15
featured_text.c
V 24
file 4h3.5cy.r16105/2066
K 15
featured_text.h
V 25
file 4h4.5cy.r15991/50612
K 6
game.c
V 24
file 3u.5cy.r16142/25234
K 6
game.h
V 24
file 3v.5cy.r16142/25489
K 19
generate_packets.py
V 25
file 2f4.5ck.r15911/12171
K 12
government.c
V 22
file he.0.r13247/25540
K 12
government.h
V 22
file hf.0.r13136/24006
K 6
idex.c
V 25
file qo.5bk.r14209/153709
K 6
idex.h
V 21
file qp.0.r8119/15235
K 13
improvement.c
V 23
file vb.5cy.r16062/4474
K 13
improvement.h
V 23
file vc.5cy.r16062/4733
K 5
map.c
V 23
file r.5ck.r15901/14087
K 5
map.h
V 24
file 41.5ck.r15901/14325
K 10
movement.c
V 25
file 2xv.5cy.r15981/22182
K 10
movement.h
V 23
file 2xw.5ck.r15857/778
K 8
nation.c
V 23
file il.5ck.r15895/1587
K 8
nation.h
V 23
file im.5ck.r15895/1828
K 9
packets.c
V 24
file 43.5cy.r16096/18307
K 11
packets.def
V 25
file 2f5.5cy.r16096/18043
K 9
packets.h
V 24
file 44.5cy.r16096/17787
K 8
player.c
V 24
file 45.5cy.r16016/44194
K 8
player.h
V 24
file 46.5cy.r15981/22705
K 14
requirements.c
V 25
file 2wq.5ck.r15815/55629
K 14
requirements.h
V 25
file 2wr.5ck.r15815/55883
K 11
spaceship.c
V 20
file 98.0.r9977/2632
K 11
spaceship.h
V 20
file 99.0.r9977/2979
K 12
specialist.c
V 23
file 33f.0.r13169/67171
K 12
specialist.h
V 23
file 33g.0.r13169/67406
K 6
team.c
V 25
file 33i.5bk.r14258/12852
K 6
team.h
V 23
file 33j.0.r13136/23073
K 6
tech.c
V 23
file t.5ck.r15785/91438
K 6
tech.h
V 23
file u.5bk.r14777/28073
K 9
terrain.c
V 25
file 2fp.5cy.r15935/28757
K 9
terrain.h
V 24
file qs.5cy.r15935/29020
K 6
tile.c
V 24
file 2ys.5ck.r15423/7007
K 6
tile.h
V 24
file 2yt.5ck.r15423/7247
K 6
unit.c
V 22
file v.5cy.r15989/1957
K 6
unit.h
V 24
file 48.5cy.r15935/28498
K 10
unitlist.c
V 25
file 39m.5cy.r16016/44456
K 10
unitlist.h
V 25
file 39n.5bk.r15190/77612
K 10
unittype.c
V 22
file v9.5cy.r16018/449
K 10
unittype.h
V 24
file va.5ck.r15860/11892
K 9
version.c
V 26
file oe.5bk.r14377/2278985
K 9
version.h
V 21
file e7.0.r13518/7887
K 8
vision.c
V 24
file 4dm.5ck.r15473/4807
K 8
vision.h
V 24
file 4dn.5ck.r15473/5048
K 10
worklist.c
V 24
file o8.5ck.r15911/12422
K 10
worklist.h
V 24
file o9.5ck.r15911/12666
END
ENDREP
id: p.5cy.r16142/28970
type: dir
pred: p.5cy.r16127/4224
count: 2621
text: 16142 25746 3211 3211 036f0b53c113be9234d186573c0a61dc
props: 12883 2571 96 0 2763e13ff5d021346ae24ff6c9ced232
cpath: /branches/S2_2/common
copyroot: 15925 /branches/S2_2

id: 2lo.5cy.r16142/29217
type: file
pred: 2lo.5cy.r16074/70427
count: 102
text: 16142 19474 50 810 33a62344d472ddde5bac8292e7fb580a
props: 8470 115 110 0 fd27c383f48a4fbbd90a59fbcfc8b3be
cpath: /branches/S2_2/version.in
copyroot: 15925 /branches/S2_2

id: vg.5cy.r16142/29469
type: file
pred: vg.5cy.r16112/52717
count: 434
text: 16142 3535 648 76347 315615e1506cb49099551275575bac12
props: 11057 12128 112 0 85dbe778568e34751643d476c23a0d7c
cpath: /branches/S2_2/server/srv_main.c
copyroot: 15925 /branches/S2_2

id: 2dw.5cy.r16142/29731
type: file
pred: 2dw.5cy.r16112/54417
count: 99
text: 16142 19551 5653 22915 ec2513e906e81583884bc313d2cc168e
props: 11086 310 111 0 e5ad8d36ef6bfd356bb06d6f3ece066f
cpath: /branches/S2_2/server/connecthand.c
copyroot: 15925 /branches/S2_2

id: 8w.5cy.r16142/29997
type: file
pred: 8w.5cy.r15944/27149
count: 408
text: 16142 5281 14164 149442 3464928023c42e25ae7ddf8b1a38862f
props: 11085 367 112 0 7f6d12fc80ead5cc285da723cb8caa9d
cpath: /branches/S2_2/server/ruleset.c
copyroot: 15925 /branches/S2_2

id: 3bk.5cy.r16142/30259
type: file
pred: 3bk.5cy.r16112/56516
count: 57
text: 16142 4310 280 44297 70369fa0d3df0cedc7076c37ab8761c1
props: 12670 12724 34 0 25e6c2f7558b7484000d4d090dea5b92
cpath: /branches/S2_2/server/edithand.c
copyroot: 15925 /branches/S2_2

id: 4z.5cy.r16142/30521
type: file
pred: 4z.5cy.r16137/1659
count: 549
text: 16142 1032 2477 167381 08b1ead0faac3f711639f67e86e4001c
props: 11087 3718 112 0 d0e5ada95c1c714385b6751e38a4f15d
cpath: /branches/S2_2/server/stdinhand.c
copyroot: 15925 /branches/S2_2

id: 50.5cy.r16142/30784
type: file
pred: 50.5ck.r15833/7196
count: 40
text: 16142 5007 246 2067 bd1ac3e5815c34efdd85c73375a7c7ae
props: 10836 7334 111 0 b4233197920770c602c29330b7f7c623
cpath: /branches/S2_2/server/stdinhand.h
copyroot: 15925 /branches/S2_2

PLAIN
K 11
Makefile.am
V 24
file 5q.5cy.r16112/59169
K 9
aiiface.c
V 25
file 4gm.5ck.r15837/20486
K 9
aiiface.h
V 25
file 4gn.5ck.r15803/18216
K 6
auth.c
V 25
file 39c.5cy.r16112/54942
K 6
auth.h
V 23
file 39d.0.r13513/10535
K 11
barbarian.c
V 24
file lw.5cy.r16112/55466
K 11
barbarian.h
V 21
file lx.0.r13220/1454
K 10
cityhand.c
V 24
file 10.5cy.r16112/52196
K 10
cityhand.h
V 23
file 4f.0.r13297/423686
K 11
citytools.c
V 24
file 4g.5cy.r16112/54683
K 11
citytools.h
V 23
file 4h.5cy.r16066/3077
K 10
cityturn.c
V 24
file 4i.5cy.r16112/55203
K 10
cityturn.h
V 23
file 4j.5ck.r15766/7385
K 11
civserver.c
V 23
file 4k.5cy.r16127/4470
K 11
civserver.h
V 21
file 4l.0.r2805/33121
K 10
commands.c
V 24
file 2ly.5cy.r16034/8328
K 10
commands.h
V 24
file 2lz.5cy.r16034/8586
K 13
connecthand.c
V 25
file 2dw.5cy.r16142/29731
K 13
connecthand.h
V 25
file 2dx.5cy.r16080/16045
K 9
console.c
V 24
file dd.5cy.r16112/51939
K 9
console.h
V 21
file de.0.r11697/6876
K 10
diplhand.c
V 24
file 4m.5cy.r16122/11724
K 10
diplhand.h
V 21
file 4n.0.r13421/6826
K 11
diplomats.c
V 24
file vz.5cy.r16112/57041
K 11
diplomats.h
V 24
file w0.5bk.r13745/13943
K 10
edithand.c
V 25
file 3bk.5cy.r16142/30259
K 10
edithand.h
V 23
file 4ez.5ck.r15317/588
K 10
gamehand.c
V 24
file 4o.5cy.r16112/55992
K 10
gamehand.h
V 24
file 4p.5ck.r15698/24111
K 9
generator
V 24
dir 2me.5ck.r15901/22456
K 11
ggzserver.c
V 25
file 39a.5bk.r15001/48736
K 11
ggzserver.h
V 25
file 39b.5bk.r15001/48999
K 10
gotohand.c
V 23
file 11.5ck.r15908/5108
K 10
gotohand.h
V 24
file 7r.5bk.r14972/34009
K 10
handchat.c
V 24
file 4q.5cy.r16112/52458
K 10
handchat.h
V 22
file dj.0.r7100/189089
K 9
maphand.c
V 24
file 13.5cy.r16112/56256
K 9
maphand.h
V 24
file 14.5cy.r16076/22767
K 6
meta.c
V 24
file 4s.5ck.r15901/23681
K 6
meta.h
V 23
file 4t.5bk.r14763/1928
K 8
notify.c
V 25
file 4i4.5cy.r16112/58033
K 8
notify.h
V 25
file 4i5.5cy.r16112/58735
K 9
plrhand.c
V 24
file 4u.5cy.r16112/58911
K 9
plrhand.h
V 24
file 4v.5cy.r16112/59425
K 8
report.c
V 24
file vi.5cy.r15986/15867
K 8
report.h
V 24
file vj.5cy.r15986/16126
K 9
ruleset.c
V 24
file 8w.5cy.r16142/29997
K 9
ruleset.h
V 23
file 8x.5ck.r15729/3717
K 13
sanitycheck.c
V 24
file wi.5ck.r15414/14072
K 13
sanitycheck.h
V 23
file wj.5bk.r14639/6548
K 10
savegame.c
V 24
file vl.5cy.r16076/23024
K 10
savegame.h
V 24
file vm.5ck.r15698/25092
K 7
score.c
V 25
file 2eg.5ck.r15855/33214
K 7
score.h
V 22
file 2eh.0.r11430/3487
K 9
scripting
V 24
dir 31x.5cy.r16112/54160
K 8
sernet.c
V 21
file 15.5cy.r15968/69
K 8
sernet.h
V 25
file 4y.5bk.r14427/262734
K 10
settings.c
V 25
file 2m0.5cy.r16076/22246
K 10
settings.h
V 24
file 2m1.5ck.r15856/4622
K 10
settlers.c
V 24
file 7s.5ck.r15917/12731
K 10
settlers.h
V 24
file 7t.5bk.r14416/98109
K 11
spacerace.c
V 24
file 9a.5cy.r16112/55729
K 11
spacerace.h
V 21
file 9b.0.r11338/1129
K 10
srv_main.c
V 24
file vg.5cy.r16142/29469
K 10
srv_main.h
V 23
file vh.5cy.r15948/1576
K 11
stdinhand.c
V 24
file 4z.5cy.r16142/30521
K 11
stdinhand.h
V 24
file 50.5cy.r16142/30784
K 11
techtools.c
V 25
file 33n.5cy.r16112/57566
K 11
techtools.h
V 24
file 33o.5ck.r15913/5569
K 10
unithand.c
V 24
file 18.5cy.r16112/58210
K 10
unithand.h
V 24
file 19.5bk.r14247/14333
K 11
unittools.c
V 24
file 1a.5cy.r16112/57304
K 11
unittools.h
V 24
file 1b.5ck.r15610/36892
K 8
voting.c
V 25
file 4ex.5cy.r16112/57830
K 8
voting.h
V 25
file 4ey.5ck.r15675/47518
END
ENDREP
id: z.5cy.r16142/34448
type: dir
pred: z.5cy.r16137/5321
count: 3780
text: 16142 31043 3392 3392 ca24b91201790ac5cf3ddbd35ca15a61
props: 13932 1834 123 0 2b883b78ac685994a9940e39e0d24770
cpath: /branches/S2_2/server
copyroot: 15925 /branches/S2_2

id: n.5cy.r16142/34696
type: file
pred: n.5cy.r16114/1853
count: 701
text: 16142 4620 359 111434 f1972310beef9599e40e880964024168
props: 11088 14698 112 0 2c9d3e41a2f20488aa9cdb8d740d094e
cpath: /branches/S2_2/client/packhand.c
copyroot: 15925 /branches/S2_2

id: 2f.5cz.r16142/34956
type: file
pred: 2f.5cz.r16114/2113
count: 285
text: 16142 0 329 30128 871965decd97b2d22417cb156216c438
props: 15407 50334 136 0 d530209ca649bf20b5cecaa6957aa1ef
cpath: /branches/S2_2/client/client_main.c
copyroot: 15407 /trunk/client/client_main.c

PLAIN
K 11
Makefile.am
V 22
file 5f.5ck.r15869/170
K 6
agents
V 23
dir zf.5cy.r16016/56426
K 11
attribute.c
V 22
file xh.5ck.r15627/122
K 11
attribute.h
V 19
file xi.0.r4715/844
K 7
audio.c
V 27
file 139.5bk.r14370/4417393
K 7
audio.h
V 22
file 13a.0.r10416/6162
K 12
audio_none.c
V 23
file 13d.0.r6129/145164
K 12
audio_none.h
V 22
file 13e.0.r4452/27228
K 11
audio_sdl.c
V 27
file 13f.5bk.r14377/2306692
K 11
audio_sdl.h
V 22
file 13g.0.r4452/26570
K 17
chatline_common.c
V 25
file 14q.5cy.r15991/82559
K 17
chatline_common.h
V 25
file 14r.5cy.r15991/82830
K 16
citydlg_common.c
V 24
file z4.5ck.r15911/20636
K 16
citydlg_common.h
V 24
file z5.5ck.r15681/71947
K 13
cityrepdata.c
V 24
file mb.5cy.r16016/56681
K 13
cityrepdata.h
V 21
file mc.0.r9153/21475
K 11
civclient.c
V 23
file 4f2.5ck.r15408/695
K 13
client_main.c
V 24
file 2f.5cz.r16142/34956
K 13
client_main.h
V 24
file hz.5d0.r16022/35205
K 8
climap.c
V 26
file 197.5ck.r15410/382800
K 8
climap.h
V 25
file 198.5bk.r13917/12934
K 9
climisc.c
V 23
file d5.5cy.r15999/5980
K 9
climisc.h
V 24
file i0.5cy.r15991/87023
K 8
clinet.c
V 24
file hc.5cy.r16022/34674
K 8
clinet.h
V 25
file i1.5bk.r14427/324634
K 15
colors_common.c
V 25
file 33a.5ck.r15923/16727
K 15
colors_common.h
V 25
file 33b.5ck.r15923/16974
K 19
connectdlg_common.c
V 25
file 2fw.5cy.r15991/82287
K 19
connectdlg_common.h
V 26
file 2fx.5bk.r14209/198288
K 9
control.c
V 24
file gz.5cy.r15991/55216
K 9
control.h
V 24
file i2.5cy.r15935/41746
K 7
dummy.c
V 23
file 4f9.5ck.r15641/551
K 8
editor.c
V 25
file 3bg.5cy.r15935/62142
K 8
editor.h
V 25
file 3bh.5ck.r15761/13075
K 11
ggzclient.c
V 25
file 394.5ck.r15814/34717
K 11
ggzclient.h
V 24
file 395.0.r12670/122419
K 6
goto.c
V 24
file vu.5ck.r15832/25709
K 6
goto.h
V 24
file vv.5ck.r15509/18108
K 8
gui-ftwl
V 24
dir 2k2.5cy.r16064/71641
K 11
gui-gtk-2.0
V 22
dir zs.5cy.r16125/4007
K 7
gui-sdl
V 24
dir 16t.5cy.r16122/25074
K 8
gui-stub
V 23
dir mh.5cy.r16064/75451
K 9
gui-win32
V 23
dir np.5cy.r16064/61434
K 7
gui-xaw
V 23
dir 9o.5cy.r16064/54936
K 10
helpdata.c
V 24
file h1.5cy.r16016/79313
K 10
helpdata.h
V 25
file i3.5bk.r14417/261925
K 7
include
V 23
dir b8.5cy.r16064/57353
K 16
mapctrl_common.c
V 25
file 15m.5cy.r15991/83099
K 16
mapctrl_common.h
V 23
file 15n.0.r11378/41712
K 16
mapview_common.c
V 24
file z2.5cy.r16140/11137
K 16
mapview_common.h
V 24
file z3.5ck.r15923/22323
K 19
messagewin_common.c
V 25
file 14s.5ck.r15909/33786
K 19
messagewin_common.h
V 25
file 14t.5ck.r15909/37338
K 9
options.c
V 21
file dc.5cy.r16082/60
K 9
options.h
V 24
file i4.5cy.r16060/27754
K 17
overview_common.c
V 26
file 2yk.5ck.r15410/337841
K 17
overview_common.h
V 24
file 2yl.5bk.r15036/1721
K 10
packhand.c
V 23
file n.5cy.r16142/34696
K 10
packhand.h
V 24
file i5.5bk.r14422/90154
K 15
plrdlg_common.c
V 25
file 14u.5cy.r16016/79045
K 15
plrdlg_common.h
V 26
file 14v.5bk.r14417/257761
K 17
repodlgs_common.c
V 25
file 11i.5ck.r15725/36369
K 17
repodlgs_common.h
V 25
file 11j.5bk.r14162/22062
K 9
reqtree.c
V 26
file 2ym.5ck.r15410/337339
K 9
reqtree.h
V 23
file 2yn.0.r13481/22674
K 9
servers.c
V 25
file 33x.5ck.r15626/13760
K 9
servers.h
V 25
file 33y.5ck.r15505/14398
K 6
text.c
V 24
file 2g3.5cy.r15989/5684
K 6
text.h
V 24
file 2g4.5bk.r14284/8380
K 15
themes_common.c
V 25
file 352.5cy.r16024/64877
K 15
themes_common.h
V 23
file 353.0.r13227/35479
K 10
tilespec.c
V 24
file hl.5cy.r16140/10616
K 10
tilespec.h
V 24
file i6.5cy.r16140/10877
K 10
voteinfo.c
V 25
file 4fe.5cy.r16064/71902
K 10
voteinfo.h
V 24
file 4ff.5ck.r15676/4001
END
ENDREP
id: d.5cy.r16142/38772
type: dir
pred: d.5cy.r16140/14943
count: 4606
text: 16142 35230 3529 3529 3807e2fee921d39b5e550601bcbc9e0e
props: 12883 2898 109 0 732f4656541fb514e4368d9517bdf317
cpath: /branches/S2_2/client
copyroot: 15925 /branches/S2_2

PLAIN
K 9
ABOUT-NLS
V 22
file fu.0.r13215/85704
K 7
AUTHORS
V 19
file 5u.0.r12982/94
K 7
COPYING
V 19
file 1h.0.r9643/400
K 9
ChangeLog
V 26
file 6l.5ck.r15924/3800068
K 7
INSTALL
V 21
file 6.5bk.r14672/184
K 11
Makefile.am
V 23
file 59.5bk.r14918/1267
K 4
NEWS
V 22
file 6m.5bk.r13824/202
K 6
README
V 20
file 7.0.r4421/96382
K 2
ai
V 21
dir 8.5cy.r16119/2894
K 10
autogen.sh
V 22
file 12o.5ck.r15690/50
K 9
bootstrap
V 22
dir 2p5.5ck.r15916/868
K 6
client
V 22
dir d.5cy.r16142/38772
K 6
common
V 22
dir p.5cy.r16142/28970
K 12
config.mac.h
V 20
file hb.0.r6045/5982
K 12
configure.ac
V 23
file 149.5ck.r15790/218
K 4
data
V 22
dir w.5cy.r16140/10369
K 6
debian
V 22
dir 5w.5ck.r15836/2958
K 12
dependencies
V 25
dir 2yu.5ck.r15799/243560
K 11
diff_ignore
V 19
file qq.0.r13200/42
K 3
doc
V 22
dir k7.5ck.r15879/1642
K 2
m4
V 23
dir 12p.5cy.r15942/2078
K 6
manual
V 24
dir 2m2.5ck.r15855/40893
K 2
po
V 24
dir fs.5cy.r16028/501624
K 7
scripts
V 23
dir 2yo.5bk.r14810/1300
K 6
server
V 22
dir z.5cy.r16142/34448
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.5cy.r16132/4849
K 10
version.in
V 25
file 2lo.5cy.r16142/29217
K 3
vms
V 21
dir u9.0.r11105/70719
K 5
win32
V 24
dir 2eu.5bk.r13732/30345
END
ENDREP
id: 3.5cy.r16142/40286
type: dir
pred: 3.5cy.r16140/16454
count: 12404
text: 16142 39021 1252 1252 62a3f042f0932481157db320fc58902d
props: 11109 0 255 0 8cbc80e0da9c47b05b8ffee17ea9b0f1
cpath: /branches/S2_2
copyroot: 15925 /branches/S2_2

PLAIN
K 5
S1_14
V 20
dir 3.21.r15733/2958
K 4
S2_0
V 21
dir 3.10x.r15826/3238
K 4
S2_1
V 22
dir 3.59e.r16138/11657
K 4
S2_2
V 22
dir 3.5cy.r16142/40286
K 11
freeciv-web
V 22
dir 3.5bl.r13594/14918
END
ENDREP
id: 1.0.r16142/40734
type: dir
pred: 1.0.r16140/16901
count: 3667
text: 16142 40526 195 195 f21c848b305dd0254700ca0d79c91203
cpath: /branches
copyroot: 0 /

PLAIN
K 8
branches
V 20
dir 1.0.r16142/40734
K 4
tags
V 21
dir 2.0.r15609/968232
K 5
trunk
V 22
dir 3.5ck.r16141/26480
K 7
website
V 18
dir 3ge.0.r12388/0
END
ENDREP
id: 0.0.r16142/41057
type: dir
pred: 0.0.r16141/26870
count: 16142
text: 16142 40891 153 153 72223101667b41d0ad85516b25e3b34c
cpath: /
copyroot: 0 /

3v.5cy.t16141-1 modify true false /branches/S2_2/common/game.h

3bk.5cy.t16141-1 modify true false /branches/S2_2/server/edithand.c

n.5cy.t16141-1 modify true false /branches/S2_2/client/packhand.c

50.5cy.t16141-1 modify true false /branches/S2_2/server/stdinhand.h

8w.5cy.t16141-1 modify true false /branches/S2_2/server/ruleset.c

2lo.5cy.t16141-1 modify true false /branches/S2_2/version.in

2dw.5cy.t16141-1 modify true false /branches/S2_2/server/connecthand.c

2f.5cz.t16141-1 modify true false /branches/S2_2/client/client_main.c

3u.5cy.t16141-1 modify true false /branches/S2_2/common/game.c

4z.5cy.t16141-1 modify true false /branches/S2_2/server/stdinhand.c

vg.5cy.t16141-1 modify true false /branches/S2_2/server/srv_main.c


41057 41207
