forked from github/server
commit
f1d76808d1
10 changed files with 172 additions and 142 deletions
2
clibs
2
clibs
|
@ -1 +1 @@
|
|||
Subproject commit 147584ad70b220abf6a4e97ca76e785729b9ac32
|
||||
Subproject commit f9842e07a442c5453c270badf25ab72633b4edf5
|
|
@ -17,9 +17,7 @@ msgstr "Rostiges Kettenhemd"
|
|||
msgctxt "spellinfo"
|
||||
msgid "destroy_magic"
|
||||
msgstr ""
|
||||
"Dieser Zauber ermöglicht dem Magier, Verzauberungen "
|
||||
"einer Einheit, eines Schiffes, Gebäudes oder auch "
|
||||
"der Region aufzulösen."
|
||||
"Dieser Zauber ermöglicht dem Magier, Verzauberungen einer Einheit, eines Schiffes, Gebäudes oder auch der Region aufzulösen."
|
||||
|
||||
msgctxt "spell"
|
||||
msgid "shadowknights"
|
||||
|
@ -168,9 +166,6 @@ msgstr "TRÄNKE"
|
|||
msgid "northwest"
|
||||
msgstr "Nordwesten"
|
||||
|
||||
msgid "spinx09"
|
||||
msgstr "Das Schiff mit dem Stern im Wappen liegt neben dem der einen Mandelkern hat"
|
||||
|
||||
msgctxt "iteminfo"
|
||||
msgid "cookie"
|
||||
msgstr "Kleines trockenes Dauergebäck, m od. s; - u. -es, - u. -e"
|
||||
|
|
|
@ -486,3 +486,13 @@ function test_rising_undead()
|
|||
assert_equal(2, u.number)
|
||||
assert_equal(u.number, u:get_item('rustysword'))
|
||||
end
|
||||
|
||||
function test_dwarf_mining()
|
||||
local f = faction.create('dwarf')
|
||||
local r = region.create(0, 0, 'plain')
|
||||
local u = unit.create(f, r)
|
||||
u.name = 'Xolgrim'
|
||||
u:set_skill('mining', 2)
|
||||
assert_equal(2, u:get_skill('mining'))
|
||||
assert_equal(4, u:eff_skill('mining'))
|
||||
end
|
||||
|
|
|
@ -85,13 +85,15 @@ static void test_steal_okay(CuTest * tc) {
|
|||
struct steal env;
|
||||
race *rc;
|
||||
struct terrain_type *ter;
|
||||
message *msg;
|
||||
|
||||
test_setup();
|
||||
ter = test_create_terrain("plain", LAND_REGION);
|
||||
rc = test_create_race("human");
|
||||
rc->flags = 0;
|
||||
setup_steal(&env, ter, rc);
|
||||
CuAssertPtrEquals(tc, 0, steal_message(env.u, 0));
|
||||
CuAssertPtrEquals(tc, NULL, msg = steal_message(env.u, 0));
|
||||
assert(!msg);
|
||||
test_teardown();
|
||||
}
|
||||
|
||||
|
@ -739,6 +741,7 @@ static void test_expand_production(CuTest *tc) {
|
|||
CuAssertPtrEquals(tc, u, results[0]->unit);
|
||||
CuAssertPtrEquals(tc, u, results[1]->unit);
|
||||
CuAssertIntEquals(tc, 0, u->n);
|
||||
free(results);
|
||||
test_teardown();
|
||||
}
|
||||
|
||||
|
|
|
@ -40,12 +40,15 @@ static void setup_give(struct give *env) {
|
|||
|
||||
env->r = test_create_region(0, 0, ter);
|
||||
env->src = test_create_unit(env->f1, env->r);
|
||||
env->dst = env->f2 ? test_create_unit(env->f2, env->r) : 0;
|
||||
env->itype = it_get_or_create(rt_get_or_create("money"));
|
||||
env->itype->flags |= ITF_HERB;
|
||||
if (env->f1 && env->f2) {
|
||||
if (env->f2) {
|
||||
ally * al = ally_add(&env->f2->allies, env->f1);
|
||||
al->status = HELP_GIVE;
|
||||
env->dst = test_create_unit(env->f2, env->r);
|
||||
}
|
||||
else {
|
||||
env->dst = NULL;
|
||||
}
|
||||
if (env->lang) {
|
||||
locale_setstring(env->lang, env->itype->rtype->_name, "SILBER");
|
||||
|
@ -139,10 +142,12 @@ static void test_give_unit_to_ocean(CuTest * tc) {
|
|||
|
||||
static void test_give_men(CuTest * tc) {
|
||||
struct give env = { 0 };
|
||||
message * msg;
|
||||
test_setup_ex(tc);
|
||||
env.f2 = env.f1 = test_create_faction(NULL);
|
||||
setup_give(&env);
|
||||
CuAssertPtrEquals(tc, 0, give_men(1, env.src, env.dst, NULL));
|
||||
CuAssertPtrEquals(tc, NULL, msg = give_men(1, env.src, env.dst, NULL));
|
||||
assert(!msg);
|
||||
CuAssertIntEquals(tc, 2, env.dst->number);
|
||||
CuAssertIntEquals(tc, 0, env.src->number);
|
||||
test_teardown();
|
||||
|
@ -222,10 +227,13 @@ static void test_give_men_in_ocean(CuTest * tc) {
|
|||
|
||||
static void test_give_men_too_many(CuTest * tc) {
|
||||
struct give env = { 0 };
|
||||
message * msg;
|
||||
|
||||
test_setup_ex(tc);
|
||||
env.f2 = env.f1 = test_create_faction(NULL);
|
||||
setup_give(&env);
|
||||
CuAssertPtrEquals(tc, 0, give_men(2, env.src, env.dst, NULL));
|
||||
CuAssertPtrEquals(tc, NULL, msg = give_men(2, env.src, env.dst, NULL));
|
||||
assert(!msg);
|
||||
CuAssertIntEquals(tc, 2, env.dst->number);
|
||||
CuAssertIntEquals(tc, 0, env.src->number);
|
||||
test_teardown();
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
#include <CuTest.h>
|
||||
#include <tests.h>
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
void test_missing_message(CuTest *tc) {
|
||||
message *msg;
|
||||
|
||||
|
@ -78,6 +80,7 @@ static void test_merge_split(CuTest *tc) {
|
|||
static void test_noerror(CuTest *tc) {
|
||||
unit *u;
|
||||
struct locale *lang;
|
||||
message *msg;
|
||||
|
||||
test_setup();
|
||||
lang = test_create_locale();
|
||||
|
@ -85,8 +88,10 @@ static void test_noerror(CuTest *tc) {
|
|||
u->thisorder = parse_order("!@move", lang);
|
||||
CuAssertIntEquals(tc, K_MOVE | CMD_QUIET | CMD_PERSIST, u->thisorder->command);
|
||||
CuAssertTrue(tc, !is_persistent(u->thisorder));
|
||||
CuAssertPtrEquals(tc, NULL, msg_error(u, u->thisorder, 100));
|
||||
CuAssertPtrEquals(tc, NULL, msg_feedback(u, u->thisorder, "error_unit_not_found", NULL));
|
||||
CuAssertPtrEquals(tc, NULL, msg = msg_error(u, u->thisorder, 100));
|
||||
assert(!msg);
|
||||
CuAssertPtrEquals(tc, NULL, msg = msg_feedback(u, u->thisorder, "error_unit_not_found", NULL));
|
||||
assert(!msg);
|
||||
test_teardown();
|
||||
}
|
||||
|
||||
|
|
|
@ -239,6 +239,7 @@ static void test_is_persistent(CuTest *tc) {
|
|||
|
||||
ord = parse_order("@invalid", lang);
|
||||
CuAssertPtrEquals(tc, NULL, ord);
|
||||
free_order(ord);
|
||||
|
||||
ord = parse_order("give", lang);
|
||||
CuAssertIntEquals(tc, K_GIVE, ord->command);
|
||||
|
@ -290,6 +291,7 @@ static void test_is_silent(CuTest *tc) {
|
|||
|
||||
ord = parse_order("@invalid", lang);
|
||||
CuAssertPtrEquals(tc, NULL, ord);
|
||||
free_order(ord);
|
||||
|
||||
ord = parse_order("// comment", lang);
|
||||
CuAssertTrue(tc, is_persistent(ord));
|
||||
|
|
15
src/report.c
15
src/report.c
|
@ -723,8 +723,9 @@ rp_messages(struct stream *out, message_list * msgs, faction * viewer, int inden
|
|||
int k = 0;
|
||||
struct mlist *m = msgs->begin;
|
||||
while (m) {
|
||||
/* messagetype * mt = m->type; */
|
||||
if (!categorized || strcmp(m->msg->type->section, section) == 0) {
|
||||
/* categorized messages need a section: */
|
||||
assert(!categorized || (m->msg->type->section != NULL));
|
||||
if (!categorized || m->msg->type->section == section) {
|
||||
char lbuf[8192];
|
||||
|
||||
if (!k && categorized) {
|
||||
|
@ -1037,6 +1038,9 @@ void report_region(struct stream *out, const region * r, faction * f)
|
|||
if (wrptr(&bufp, &size, bytes) != 0)
|
||||
WARN_STATIC_BUFFER();
|
||||
if (is_mourning(r, turn + 1)) {
|
||||
bytes = (int)str_strlcpy(bufp, " ", size);
|
||||
if (wrptr(&bufp, &size, bytes) != 0)
|
||||
WARN_STATIC_BUFFER();
|
||||
bytes = (int)str_strlcpy(bufp, LOC(f->locale, "nr_mourning"), size);
|
||||
if (wrptr(&bufp, &size, bytes) != 0)
|
||||
WARN_STATIC_BUFFER();
|
||||
|
@ -1877,6 +1881,9 @@ nr_building(struct stream *out, const region *r, const building *b, const factio
|
|||
}
|
||||
|
||||
if (!building_finished(b)) {
|
||||
bytes = (int)str_strlcpy(bufp, " ", size);
|
||||
if (wrptr(&bufp, &size, bytes) != 0)
|
||||
WARN_STATIC_BUFFER();
|
||||
bytes = (int)str_strlcpy(bufp, LOC(lang, "nr_building_inprogress"), size);
|
||||
if (wrptr(&bufp, &size, bytes) != 0)
|
||||
WARN_STATIC_BUFFER();
|
||||
|
@ -2306,11 +2313,11 @@ report_plaintext(const char *filename, report_context * ctx,
|
|||
message_list *mlist = r_getmessages(r, f);
|
||||
if (mlist) {
|
||||
struct mlist **split = merge_messages(mlist, r->msgs);
|
||||
rp_messages(out, mlist, f, 0, true);
|
||||
rp_messages(out, mlist, f, 0, false);
|
||||
split_messages(mlist, split);
|
||||
}
|
||||
else {
|
||||
rp_messages(out, r->msgs, f, 0, true);
|
||||
rp_messages(out, r->msgs, f, 0, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -111,7 +111,8 @@ size_t str_slprintf(char * dst, size_t size, const char * format, ...)
|
|||
return (size_t)result;
|
||||
}
|
||||
|
||||
void str_replace(char *buffer, size_t size, const char *tmpl, const char *var, const char *value)
|
||||
void str_replace(char *buffer, size_t size, const char *tmpl, const char *var,
|
||||
const char *value)
|
||||
{
|
||||
size_t val_len = strlen(value);
|
||||
size_t var_len = strlen(var);
|
||||
|
@ -154,8 +155,7 @@ int str_hash(const char *s)
|
|||
return key & 0x7FFFFFFF;
|
||||
}
|
||||
|
||||
const char *str_escape(const char *str, char *buffer,
|
||||
size_t len)
|
||||
const char *str_escape(const char *str, char *buffer, size_t len)
|
||||
{
|
||||
const char *handle_start = strchr(str, '\"');
|
||||
if (!handle_start) handle_start = strchr(str, '\\');
|
||||
|
|
Loading…
Add table
Reference in a new issue