[yast-commit] r54314 - in /trunk/core: libycp/src/ libycp/testsuite/tests/builtin/ package/

Author: aschnell Date: Sat Dec 20 19:49:36 2008 New Revision: 54314 URL: http://svn.opensuse.org/viewcvs/yast?rev=54314&view=rev Log: - added isempty builtin for string, list and map Modified: trunk/core/libycp/src/YCPBuiltinList.cc trunk/core/libycp/src/YCPBuiltinMap.cc trunk/core/libycp/src/YCPBuiltinString.cc trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.err trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.out trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.ycp trunk/core/libycp/testsuite/tests/builtin/Builtin-Map.ycp trunk/core/libycp/testsuite/tests/builtin/Builtin-String.err trunk/core/libycp/testsuite/tests/builtin/Builtin-String.out trunk/core/libycp/testsuite/tests/builtin/Builtin-String.ycp trunk/core/package/yast2-core.changes Modified: trunk/core/libycp/src/YCPBuiltinList.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/src/YCPBuiltinList.cc... ============================================================================== --- trunk/core/libycp/src/YCPBuiltinList.cc (original) +++ trunk/core/libycp/src/YCPBuiltinList.cc Sat Dec 20 19:49:36 2008 @@ -914,6 +914,27 @@ } +static YCPValue +l_isempty(const YCPList& l) +{ + /** + * @builtin isempty + * @id isempty-list + * @short Returns whether the list <tt>l</tt> is empty. + * @param list l List + * @return boolean Emptiness of list <tt>l</tt> + * + * @description + * Notice that the list <tt>l</tt> must not be nil. + * + * @usage isempty([]) -> true + * @usage isempty([19, 29]) -> false + */ + + return YCPBoolean(l->isEmpty()); +} + + // parameter is YCPValue because we accept 'nil' static YCPValue l_size (const YCPValue &list) @@ -1352,6 +1373,7 @@ { "add", "list <flex> (const list <flex>, const flex)", (void *)l_add, DECL_FLEX }, { "+", "list <flex> (const list <flex>, const flex)", (void *)l_add, DECL_FLEX }, { "+", "list <any> (const list <any>, any)", (void *)l_add }, + { "isempty", "boolean (const list <any>)", (void *)l_isempty }, { "size", "integer (const list <any>)", (void *)l_size, DECL_NIL }, { "remove", "list <flex> (const list <flex>, const integer)", (void *)l_remove, DECL_FLEX }, { "select", "flex (const list <flex>, integer, flex)", (void *)l_select, DECL_NIL|DECL_FLEX }, Modified: trunk/core/libycp/src/YCPBuiltinMap.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/src/YCPBuiltinMap.cc?... ============================================================================== --- trunk/core/libycp/src/YCPBuiltinMap.cc (original) +++ trunk/core/libycp/src/YCPBuiltinMap.cc Sat Dec 20 19:49:36 2008 @@ -361,6 +361,27 @@ } +static YCPValue +m_isempty(const YCPMap& m) +{ + /** + * @builtin isempty + * @id isempty-map + * @short Returns whether the map <tt>m</tt> is empty. + * @param map m Map + * @return boolean Emptiness of map <tt>m</tt> + * + * @description + * Notice that the map <tt>m</tt> must not be nil. + * + * @usage isempty($[]) -> true + * @usage isempty($[ `host : "pandora" ]) -> false + */ + + return YCPBoolean(m->isEmpty()); +} + + // parameter is YCPValue because we accept 'nil' static YCPValue m_size (const YCPValue &map) @@ -547,6 +568,7 @@ { "+", "map <any,any> (const map <any,any>, const map <any,any>)", (void *)m_unionmap }, { "add", "map <flex1,flex2> (const map <flex1,flex2>, const flex1, const flex2)", (void *)m_addmap, DECL_FLEX }, { "change", "map <flex1,flex2> (const map <flex1,flex2>, const flex1, const flex2)", (void *)m_changemap,DECL_FLEX|DECL_DEPRECATED }, + { "isempty", "boolean (const map <any,any>)", (void *)m_isempty }, { "size", "integer (const map <any,any>)", (void *)m_size, DECL_NIL }, { "foreach","flex1 (variable <flex2>, variable <flex3>, const map <flex2,flex3>, const block <flex1>)", (void *)m_foreach, DECL_LOOP|DECL_SYMBOL|DECL_FLEX }, { "tomap", "map <any,any> (const any)", (void *)m_tomap, DECL_FLEX }, Modified: trunk/core/libycp/src/YCPBuiltinString.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/src/YCPBuiltinString.... ============================================================================== --- trunk/core/libycp/src/YCPBuiltinString.cc (original) +++ trunk/core/libycp/src/YCPBuiltinString.cc Sat Dec 20 19:49:36 2008 @@ -58,6 +58,27 @@ static YCPValue +s_isempty(const YCPString& s) +{ + /** + * @builtin isempty + * @id isempty-string + * @short Returns whether the string <tt>s</tt> is empty. + * @param string s String + * @return boolean Emptiness of string <tt>s</tt> + * + * @description + * Notice that the string <tt>s</tt> must not be nil. + * + * @usage isempty("") -> true + * @usage isempty("test") -> false + */ + + return YCPBoolean(s->isEmpty()); +} + + +static YCPValue s_size (const YCPString &s) { /** @@ -1488,6 +1509,7 @@ { "tostring", "string (any)", (void *)s_tostring }, { "tohexstring", "string (integer)", (void *)s_tohexstring1 }, { "tohexstring", "string (integer, integer)", (void *)s_tohexstring2 }, + { "isempty", "boolean (string)", (void *)s_isempty }, { "size", "integer (string)", (void *)s_size }, { "find", "integer (string, string)", (void *)s_find, DECL_DEPRECATED }, { "search", "integer (string, string)", (void *)s_search }, Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.err URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/built... ============================================================================== --- trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.err (original) +++ trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.err Sat Dec 20 19:49:36 2008 @@ -124,6 +124,23 @@ ---------------------------------------------------------------------- Parsed: ---------------------------------------------------------------------- +"** isempty **" +---------------------------------------------------------------------- +Parsed: +---------------------------------------------------------------------- +isempty ([]) +---------------------------------------------------------------------- +Parsed: +---------------------------------------------------------------------- +isempty ([1, 2, 3]) +---------------------------------------------------------------------- +Parsed: +---------------------------------------------------------------------- +isempty (nil) +---------------------------------------------------------------------- +[Interpreter] tests/builtin/Builtin-List2.ycp:72 Argument (nil) to isempty(...) is nil +Parsed: +---------------------------------------------------------------------- "** size **" ---------------------------------------------------------------------- Parsed: @@ -166,12 +183,12 @@ ---------------------------------------------------------------------- "** change **" ---------------------------------------------------------------------- -[Parser] tests/builtin/Builtin-List2.ycp:90 Warning: change(...) is deprecated, please fix +[Parser] tests/builtin/Builtin-List2.ycp:97 Warning: change(...) is deprecated, please fix Parsed: ---------------------------------------------------------------------- change ([1, 4], 8) ---------------------------------------------------------------------- -[libycp] tests/builtin/Builtin-List2.ycp:90 Change does not work as expected! The argument is not passed by reference. +[libycp] tests/builtin/Builtin-List2.ycp:97 Change does not work as expected! The argument is not passed by reference. Parsed: ---------------------------------------------------------------------- "** remove **" @@ -184,34 +201,34 @@ ---------------------------------------------------------------------- remove ([], 0) ---------------------------------------------------------------------- -[Interpreter] tests/builtin/Builtin-List2.ycp:96 Index 0 for remove () out of range +[Interpreter] tests/builtin/Builtin-List2.ycp:103 Index 0 for remove () out of range Parsed: ---------------------------------------------------------------------- "** select **" ---------------------------------------------------------------------- -[Parser] tests/builtin/Builtin-List2.ycp:101 Warning: 'select ()' is deprecated +[Parser] tests/builtin/Builtin-List2.ycp:108 Warning: 'select ()' is deprecated Parsed: ---------------------------------------------------------------------- [1, 2][-1]:42 ---------------------------------------------------------------------- -[Parser] tests/builtin/Builtin-List2.ycp:102 Warning: 'select ()' is deprecated +[Parser] tests/builtin/Builtin-List2.ycp:109 Warning: 'select ()' is deprecated Parsed: ---------------------------------------------------------------------- [1, 2][0]:42 ---------------------------------------------------------------------- -[Parser] tests/builtin/Builtin-List2.ycp:103 Warning: 'select ()' is deprecated +[Parser] tests/builtin/Builtin-List2.ycp:110 Warning: 'select ()' is deprecated Parsed: ---------------------------------------------------------------------- [1, 2][1]:42 ---------------------------------------------------------------------- -[Parser] tests/builtin/Builtin-List2.ycp:104 Warning: 'select ()' is deprecated +[Parser] tests/builtin/Builtin-List2.ycp:111 Warning: 'select ()' is deprecated Parsed: ---------------------------------------------------------------------- [1, 2][3]:42 ---------------------------------------------------------------------- -[Parser] tests/builtin/Builtin-List2.ycp:105 Warning: 'select ()' is deprecated +[Parser] tests/builtin/Builtin-List2.ycp:112 Warning: 'select ()' is deprecated Parsed: ---------------------------------------------------------------------- /* any -> string */[1, "two"][0]:"wrong type" ---------------------------------------------------------------------- -[Interpreter] tests/builtin/Builtin-List2.ycp:96 Can't convert value '1' to type 'string' +[Interpreter] tests/builtin/Builtin-List2.ycp:103 Can't convert value '1' to type 'string' Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.out URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/built... ============================================================================== --- trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.out (original) +++ trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.out Sat Dec 20 19:49:36 2008 @@ -27,6 +27,10 @@ ([true, 1, 1, 2]) ([8, 6, 3, 2]) ([8, 6, 3, 2]) +("** isempty **") +(true) +(false) +(nil) ("** size **") (0) (3) Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/built... ============================================================================== --- trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.ycp (original) +++ trunk/core/libycp/testsuite/tests/builtin/Builtin-List2.ycp Sat Dec 20 19:49:36 2008 @@ -65,6 +65,13 @@ (sort (`x, `y, [ 3, 6, 2, 8 ], ``(x>y))) +("** isempty **") + +(isempty ([])) +(isempty ([1, 2, 3])) +(isempty ((list) nil)) + + ("** size **") (size ([])) Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin-Map.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/built... ============================================================================== --- trunk/core/libycp/testsuite/tests/builtin/Builtin-Map.ycp (original) +++ trunk/core/libycp/testsuite/tests/builtin/Builtin-Map.ycp Sat Dec 20 19:49:36 2008 @@ -75,6 +75,13 @@ (add ($[`a: 17, `b: 11], `b, nil)) +("** isempty **") + +(isempty ($[])) +(isempty ($[1:"a", 2:"b"])) +(isempty ((map) nil)) + + ("** size **") (size ($[])) Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin-String.err URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/built... ============================================================================== --- trunk/core/libycp/testsuite/tests/builtin/Builtin-String.err (original) +++ trunk/core/libycp/testsuite/tests/builtin/Builtin-String.err Sat Dec 20 19:49:36 2008 @@ -1,5 +1,22 @@ Parsed: ---------------------------------------------------------------------- +"** isempty **" +---------------------------------------------------------------------- +Parsed: +---------------------------------------------------------------------- +isempty ("") +---------------------------------------------------------------------- +Parsed: +---------------------------------------------------------------------- +isempty ("linux") +---------------------------------------------------------------------- +Parsed: +---------------------------------------------------------------------- +isempty (nil) +---------------------------------------------------------------------- +[Interpreter] tests/builtin/Builtin-String.ycp:15 Argument (nil) to isempty(...) is nil +Parsed: +---------------------------------------------------------------------- "** size **" ---------------------------------------------------------------------- Parsed: @@ -12,6 +29,11 @@ ---------------------------------------------------------------------- Parsed: ---------------------------------------------------------------------- +size (nil) +---------------------------------------------------------------------- +[Interpreter] tests/builtin/Builtin-String.ycp:22 Argument (nil) to size(...) is nil +Parsed: +---------------------------------------------------------------------- "** plus **" ---------------------------------------------------------------------- Parsed: @@ -94,7 +116,7 @@ ---------------------------------------------------------------------- substring ("some text", 42) ---------------------------------------------------------------------- -[Interpreter] tests/builtin/Builtin-String.ycp:48 Substring index out of range +[Interpreter] tests/builtin/Builtin-String.ycp:56 Substring index out of range Parsed: ---------------------------------------------------------------------- substring ("some text", 5, 2) @@ -103,7 +125,7 @@ ---------------------------------------------------------------------- substring ("some text", 42, 2) ---------------------------------------------------------------------- -[Interpreter] tests/builtin/Builtin-String.ycp:51 Substring index out of range +[Interpreter] tests/builtin/Builtin-String.ycp:59 Substring index out of range Parsed: ---------------------------------------------------------------------- "** lsubstring **" @@ -116,7 +138,7 @@ ---------------------------------------------------------------------- lsubstring ("some text", 42) ---------------------------------------------------------------------- -[Interpreter] tests/builtin/Builtin-String.ycp:57 Substring index out of range +[Interpreter] tests/builtin/Builtin-String.ycp:65 Substring index out of range Parsed: ---------------------------------------------------------------------- lsubstring ("ÄÅ¡ÄÅžýáÃ", 5) @@ -129,7 +151,7 @@ ---------------------------------------------------------------------- lsubstring ("some text", 42, 2) ---------------------------------------------------------------------- -[Interpreter] tests/builtin/Builtin-String.ycp:61 Substring index out of range +[Interpreter] tests/builtin/Builtin-String.ycp:69 Substring index out of range Parsed: ---------------------------------------------------------------------- lsubstring ("ÄÅ¡ÄÅžýáÃ", 5, 2) @@ -146,9 +168,9 @@ ---------------------------------------------------------------------- mergestring (["abc", "dev", "ghi", ""], "/") ---------------------------------------------------------------------- -[Parser] tests/builtin/Builtin-String.ycp:69 No match for 'mergestring : <unspec> (list, string)' -[Parser] tests/builtin/Builtin-String.ycp:69 Please fix parameter types to match one of: -[Parser] tests/builtin/Builtin-String.ycp:69 'mergestring : string (const list <string>, string)' -[Parser] tests/builtin/Builtin-String.ycp:69 Wrong parameters in call to mergestring(...) -[Parser] tests/builtin/Builtin-String.ycp:69 Expected '(const list <string>, string)', seen '(list, string)'. +[Parser] tests/builtin/Builtin-String.ycp:77 No match for 'mergestring : <unspec> (list, string)' +[Parser] tests/builtin/Builtin-String.ycp:77 Please fix parameter types to match one of: +[Parser] tests/builtin/Builtin-String.ycp:77 'mergestring : string (const list <string>, string)' +[Parser] tests/builtin/Builtin-String.ycp:77 Wrong parameters in call to mergestring(...) +[Parser] tests/builtin/Builtin-String.ycp:77 Expected '(const list <string>, string)', seen '(list, string)'. runycp: parser error Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin-String.out URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/built... ============================================================================== --- trunk/core/libycp/testsuite/tests/builtin/Builtin-String.out (original) +++ trunk/core/libycp/testsuite/tests/builtin/Builtin-String.out Sat Dec 20 19:49:36 2008 @@ -1,6 +1,11 @@ +("** isempty **") +(true) +(false) +(nil) ("** size **") (0) (5) +(nil) ("** plus **") ("YaST2") ("YaST2") Modified: trunk/core/libycp/testsuite/tests/builtin/Builtin-String.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/built... ============================================================================== --- trunk/core/libycp/testsuite/tests/builtin/Builtin-String.ycp (original) +++ trunk/core/libycp/testsuite/tests/builtin/Builtin-String.ycp Sat Dec 20 19:49:36 2008 @@ -8,10 +8,18 @@ # --------------------------------------------------------- +("** isempty **") + +(isempty ("")) +(isempty ("linux")) +(isempty ((string) nil)) + + ("** size **") (size ("")) (size ("linux")) +(size ((string) nil)) ("** plus **") Modified: trunk/core/package/yast2-core.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/package/yast2-core.changes?r... ============================================================================== --- trunk/core/package/yast2-core.changes (original) +++ trunk/core/package/yast2-core.changes Sat Dec 20 19:49:36 2008 @@ -2,6 +2,7 @@ Sat Dec 20 10:45:55 CET 2008 - aschnell@suse.de - added tosymbol builtin (bnc #192389) +- added isempty builtin for string, list and map - 2.18.0 ------------------------------------------------------------------- -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org
participants (1)
-
aschnell@svn.opensuse.org