diff options
| author | ruki <[email protected]> | 2017-12-06 22:27:42 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-12-08 14:10:23 +0800 |
| commit | abe87994168053e4f420a8b7ab286c65b546eaae (patch) | |
| tree | 2b245ac984055954a5407198edc26128ef173984 | |
| parent | 330e8a895d4706bcc6b2247990fb72a70f54f377 (diff) | |
disable halfdelay for curses
| -rw-r--r-- | NOTICE.md | 2 | ||||
| -rw-r--r-- | core/makefile | 2 | ||||
| -rw-r--r-- | core/src/lcurses/lcurses.c | 4 | ||||
| -rw-r--r-- | xmake/core/base/object.lua | 109 |
4 files changed, 114 insertions, 3 deletions
@@ -13,7 +13,7 @@ which can be obtained at: * HOMEPAGE: * http://pdcurses.org/ -This product depends on 'lcurses', Lua Console User Interface, +This product depends on 'lcurses/cui', Lua Console User Interface, which can be obtained at: * LICENSE: diff --git a/core/makefile b/core/makefile index 236e6a028..478fca71f 100644 --- a/core/makefile +++ b/core/makefile @@ -261,7 +261,7 @@ endif ifeq ($(PLAT),linux) base_LIBPATH := base_LIBNAMES := -base_LIBNAMES += $(shell if { cat detect/curses.c | $(CC) -xc - -lcurses -o /dev/null 2>/dev/null; }; then echo curses tinfo; fi ) +base_LIBNAMES += $(shell if { cat detect/curses.c | $(CC) -xc - -lcurses -o /dev/null 2>/dev/null; }; then echo curses; fi ) base_LIBNAMES += $(shell if { cat detect/readline.c | $(CC) -xc - -lreadline -o /dev/null 2>/dev/null; }; then echo readline; fi ) base_LIBNAMES += m dl pthread endif diff --git a/core/src/lcurses/lcurses.c b/core/src/lcurses/lcurses.c index 704c8fab3..f379824a5 100644 --- a/core/src/lcurses/lcurses.c +++ b/core/src/lcurses/lcurses.c @@ -1436,12 +1436,14 @@ static int lc_raw(lua_State *L) return 1; } +#if 0 // disable it because need link libtinfo.so on linux static int lc_halfdelay(lua_State *L) { int tenths = luaL_checkint(L, 1); lua_pushboolean(L, B(halfdelay(tenths))); return 1; } +#endif static int lcw_intrflush(lua_State *L) { @@ -2263,7 +2265,7 @@ static const luaL_reg curseslib[] = { "cbreak", lc_cbreak }, { "echo", lc_echo }, { "raw", lc_raw }, - { "halfdelay", lc_halfdelay }, +// { "halfdelay", lc_halfdelay }, /* util */ { "unctrl", lc_unctrl }, diff --git a/xmake/core/base/object.lua b/xmake/core/base/object.lua new file mode 100644 index 000000000..1922b0b4d --- /dev/null +++ b/xmake/core/base/object.lua @@ -0,0 +1,109 @@ +--!A cross-platform build utility based on Lua +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- +-- Copyright (C) 2015 - 2017, TBOOX Open Source Group. +-- +-- @author ruki +-- @file object.lua +-- + +-- define module: object +local object = object or {} + +-- taken from 'std' library: http://luaforge.net/projects/stdlib/ +-- and http://lua-cui.sourceforge.net/ +-- +-- create an object/class: +-- > object/class = parent {value, ...; field = value ...} +-- > An object's metatable is itself. +-- > In the initialiser, unnamed values are assigned to the fields +-- > given by _init (assuming the default _clone). +-- > Private fields and methods start with "_" +-- > +-- +-- Access an object field: object.field +-- > Call an object method: object:method (...) +-- > Call a class method: class.method (self, ...) +-- > +-- > Add a field: object.field = x +-- > Add a method: function object:method (...) ... end +-- + +-- permute some indices of a table +local function permute (p, t) + local u = {} + for i, v in pairs (t) do + if p[i] ~= nil then + u[p[i]] = v + else + u[i] = v + end + end + return u +end + +-- make a shallow copy of a table, including any +local function clone (t) + local u = setmetatable ({}, getmetatable (t)) + for i, v in pairs (t) do + u[i] = v + end + return u +end + +-- merge two tables +-- +-- If there are duplicate fields, u's will be used. The metatable of +-- the returned table is that of t +-- +local function merge (t, u) + local r = clone (t) + for i, v in pairs (u) do + r[i] = v + end + return r +end + +-- root object +-- +-- List of fields to be initialised by the +-- constructor: assuming the default _clone, the +-- numbered values in an object constructor are +-- assigned to the fields given in _init +-- +local object = { _init = {} } +setmetatable (object, object) + +-- object constructor +-- +-- @param initial values for fields in +-- +-- @return new object +-- +function object:_clone (values) + local object = merge(self, permute(self._init, values or {})) + return setmetatable (object, object) +end + +-- local x = object {} +function object.__call (...) + return (...)._clone (...) +end + +-- return module: object +return object |
