--- deliantra/server/include/freezethaw.h 2010/05/06 22:35:41 1.8 +++ deliantra/server/include/freezethaw.h 2018/12/05 19:03:26 1.16 @@ -1,22 +1,23 @@ /* * This file is part of Deliantra, the Roguelike Realtime MMORPG. - * - * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team - * + * + * Copyright (©) 2017,2018 Marc Alexander Lehmann / the Deliantra team + * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team + * * Deliantra is free software: you can redistribute it and/or modify it under * the terms of the Affero GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the Affero GNU General Public License * and the GNU General Public License along with this program. If not, see * . - * + * * The authors can be reached via e-mail to */ @@ -63,7 +64,7 @@ void put_ (attachable *ext); void put (attachable *ext) { - if (expect_false (ext->self)) + if (ecb_expect_false (ext->self)) put_ (ext); } @@ -85,7 +86,7 @@ void put (const keyword_string k, const_utf8_string v) { - if (expect_true (v)) + if (ecb_expect_true (v)) put (k, keyword_string (v, strlen (v))); else put (k); @@ -139,7 +140,7 @@ force (MAX_KEYWORD_LEN + 1); fadd (kbeg.s, kbeg.l); fadd ('\n'); - if (expect_true (v)) + if (ecb_expect_true (v)) { add (v); add ('\n'); @@ -205,7 +206,10 @@ MTH void skip (); MTH void skip_block (); // skips till and over KW_end - bool has_value () const { return value; } + // returns true IFF a value was specified and it is not the empty string + // formerly, this just etsetd for a value, but the editor is too dumb + // and creates lots of empty values. + bool has_value () const { return *value_nn; } const_utf8_string get_str () const { return value_nn; } // empty string when missing void get_ml (keyword kend, shstr &sh); @@ -246,7 +250,8 @@ void delayed_deref (attachable *op, object_ptr &ptr, const_utf8_string ref); MTH void resolve_delayed_derefs (bool deref = true); private: - void new_from_path (const_utf8_string path); + void init (const_utf8_string path); + void init_from_file (const_utf8_string path); }; #endif