Skip to content

Instantly share code, notes, and snippets.

@bubaflub
Created June 23, 2011 03:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bubaflub/1041865 to your computer and use it in GitHub Desktop.
Save bubaflub/1041865 to your computer and use it in GitHub Desktop.
tt #2130
diff --git runtime/parrot/library/ncurses.declarations runtime/parrot/library/ncurses.declarations
index 6922d90..fbf57ee 100644
--- runtime/parrot/library/ncurses.declarations
+++ runtime/parrot/library/ncurses.declarations
@@ -10,8 +10,8 @@ p new_field i i i i i i
p dup_field p i i
p link_field p i i
i free_field p
-i field_info p 3 3 3 3 3 3
-i dynamic_field_info p 3 3 3
+i field_info p p p p p p p
+i dynamic_field_info p p p p
i set_max_field p i
i move_field p i i
# i set_field_type p p ...
@@ -52,7 +52,7 @@ i set_current_field p p
i field_index p
i set_form_page p i
i form_page p
-i scale_form p 3 3
+i scale_form p p p
i post_form p
i unpost_form p
@@ -93,14 +93,14 @@ i wresize p i i
#i wgetnstr_events p t i p
i addch l
-i addchnstr 4 i
-i addchstr 4
+i addchnstr p i
+i addchstr p
i addnstr t i
i addstr t
i attroff l
i attron l
i attrset l
-i attr_get 4 2 p
+i attr_get p p p
i attr_off l p
i attr_on l p
i attr_set l s p
@@ -117,7 +117,7 @@ i clear
i clearok p l
i clrtobot
i clrtoeol
-i color_content s 2 2 2
+i color_content s p p p
i color_set s p
i COLOR_PAIR i
i copywin p p i i i i i i i i
@@ -154,8 +154,8 @@ v idcok p l
i idlok p l
v immedok p l
l inch
-i inchnstr 4 i
-i inchstr 4
+i inchnstr p i
+i inchstr p
p initscr
i init_color s s s s
i init_pair s s s
@@ -174,8 +174,8 @@ t longname
i meta p l
i move i i
i mvaddch i i l
-i mvaddchnstr i i 4 i
-i mvaddchstr i i 4
+i mvaddchnstr i i p i
+i mvaddchstr i i p
i mvaddnstr i i t i
i mvaddstr i i t
i mvchgat i i i l s p
@@ -188,7 +188,7 @@ i mvgetstr i i t
i mvhline i i l i
l mvinch i i
i mvinchnstr i i t i
-i mvinchstr i i 4
+i mvinchstr i i p
i mvinnstr i i t i
i mvinsch i i l
i mvinsnstr i i t i
@@ -197,8 +197,8 @@ i mvinsstr i i t
# i mvscanw i i t ...
i mvvline i i l i
i mvwaddch p i i l
-i mvwaddchnstr p i i 4 i
-i mvwaddchstr p i i 4
+i mvwaddchnstr p i i p i
+i mvwaddchstr p i i p
i mvwaddnstr p i i t i
i mvwaddstr p i i t
i mvwchgat p i i i l s p
@@ -209,8 +209,8 @@ i mvwgetstr p i i t
i mvwhline p i i l i
i mvwin p i i
l mvwinch p i i
-i mvwinchnstr p i i 4 i
-i mvwinchstr p i i 4
+i mvwinchnstr p i i p i
+i mvwinchstr p i i p
i mvwinnstr p i i t i
i mvwinsch p i i l
i mvwinsnstr p i i t i
@@ -233,7 +233,7 @@ i noraw
i notimeout p l
i overlay p p
i overwrite p p
-i pair_content s 2 2
+i pair_content s p p
i PAIR_NUMBER i
i pechochar p l
i pnoutrefresh p i i i i i i
@@ -303,14 +303,14 @@ i vline l i
# i vwscanw p t ...
# i vw_scanw p t ...
i waddch p l
-i waddchnstr p 4 i
-i waddchstr p 4
+i waddchnstr p p i
+i waddchstr p p
i waddnstr p t i
i waddstr p t
i wattron p i
i wattroff p i
i wattrset p i
-i wattr_get p 4 2 p
+i wattr_get p p p p
i wattr_on p l p
i wattr_off p l p
i wattr_set p l s p
@@ -332,7 +332,7 @@ i wgetnstr p t i
i wgetstr p t
i whline p l i
l winch p
-i winchnstr p 4 i
+i winchnstr p p i
i winnstr p t i
i winsch p l
i winsdelln p i
@@ -358,11 +358,11 @@ i wvline p l i
i getmouse p
i ungetmouse p
-l mousemask l 4
+l mousemask l p
l wenclose p i i
i mouseinterval i
-l wmouse_trafo p 3 3 l
-l mouse_trafo 3 3 l
+l wmouse_trafo p p p l
+l mouse_trafo p p l
i mcprint t i
i has_key i
diff --git runtime/parrot/library/ncurses.pir runtime/parrot/library/ncurses.pir
index 404b553..d38d6e7 100644
--- runtime/parrot/library/ncurses.pir
+++ runtime/parrot/library/ncurses.pir
@@ -1,11 +1,15 @@
# Copyright (C) 2004-2009, Parrot Foundation.
.sub __ncurses_init :load
-
+.include 'datatypes.pasm'
loadlib $P1, 'libform'
if $P1 goto has_lib
loadlib $P1, 'cygform-8'
has_lib:
+$I2 = .DATATYPE_SHORT | .DATATYPE_REF_FLAG
+$I3 = .DATATYPE_INT | .DATATYPE_REF_FLAG
+$I4 = .DATATYPE_LONG | .DATATYPE_REF_FLAG
+$I5 = .DATATYPE_PTR | .DATATYPE_REF_FLAG
dlfunc $P2, $P1, 'new_field', 'piiiiii'
set_global 'ncurses::new_field', $P2
dlfunc $P2, $P1, 'dup_field', 'ppii'
@@ -14,9 +18,24 @@ dlfunc $P2, $P1, 'link_field', 'ppii'
set_global 'ncurses::link_field', $P2
dlfunc $P2, $P1, 'free_field', 'ip'
set_global 'ncurses::free_field', $P2
-dlfunc $P2, $P1, 'field_info', 'ip333333'
+$P0 = new ['FixedIntegerArray'], 8
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I3
+$P0[3] = $I3
+$P0[4] = $I3
+$P0[5] = $I3
+$P0[6] = $I3
+$P0[7] = $I3
+dlfunc $P2, $P1, 'field_info', $P0
set_global 'ncurses::field_info', $P2
-dlfunc $P2, $P1, 'dynamic_field_info', 'ip333'
+$P0 = new ['FixedIntegerArray'], 5
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I3
+$P0[3] = $I3
+$P0[4] = $I3
+dlfunc $P2, $P1, 'dynamic_field_info', $P0
set_global 'ncurses::dynamic_field_info', $P2
dlfunc $P2, $P1, 'set_max_field', 'ipi'
set_global 'ncurses::set_max_field', $P2
@@ -66,7 +85,10 @@ dlfunc $P2, $P1, 'field_buffer', 'tpi'
set_global 'ncurses::field_buffer', $P2
dlfunc $P2, $P1, 'field_opts', 'lp'
set_global 'ncurses::field_opts', $P2
-dlfunc $P2, $P1, 'new_form', 'pb'
+$P0 = new ['FixedIntegerArray'], 2
+$P0[0] = .DATATYPE_PTR
+$P0[1] = $I5
+dlfunc $P2, $P1, 'new_form', $P0
set_global 'ncurses::new_form', $P2
dlfunc $P2, $P1, 'current_field', 'pp'
set_global 'ncurses::current_field', $P2
@@ -76,7 +98,11 @@ dlfunc $P2, $P1, 'form_sub', 'pp'
set_global 'ncurses::form_sub', $P2
dlfunc $P2, $P1, 'free_form', 'ip'
set_global 'ncurses::free_form', $P2
-dlfunc $P2, $P1, 'set_form_fields', 'ipb'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I5
+dlfunc $P2, $P1, 'set_form_fields', $P0
set_global 'ncurses::set_form_fields', $P2
dlfunc $P2, $P1, 'field_count', 'ip'
set_global 'ncurses::field_count', $P2
@@ -92,7 +118,12 @@ dlfunc $P2, $P1, 'set_form_page', 'ipi'
set_global 'ncurses::set_form_page', $P2
dlfunc $P2, $P1, 'form_page', 'ip'
set_global 'ncurses::form_page', $P2
-dlfunc $P2, $P1, 'scale_form', 'ip33'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I3
+$P0[3] = $I3
+dlfunc $P2, $P1, 'scale_form', $P0
set_global 'ncurses::scale_form', $P2
dlfunc $P2, $P1, 'post_form', 'ip'
set_global 'ncurses::post_form', $P2
@@ -148,7 +179,11 @@ dlfunc $P2, $P1, 'wresize', 'ipii'
set_global 'ncurses::wresize', $P2
dlfunc $P2, $P1, 'addch', 'il'
set_global 'ncurses::addch', $P2
-dlfunc $P2, $P1, 'addchnstr', 'i4i'
+$P0 = new ['FixedIntegerArray'], 2
+$P0[0] = .DATATYPE_INT
+$P0[1] = $I4
+$P0[2] = .DATATYPE_INT
+dlfunc $P2, $P1, 'addchnstr', $P0
set_global 'ncurses::addchnstr', $P2
dlfunc $P2, $P1, 'addchstr', 'i4'
set_global 'ncurses::addchstr', $P2
@@ -162,7 +197,12 @@ dlfunc $P2, $P1, 'attron', 'il'
set_global 'ncurses::attron', $P2
dlfunc $P2, $P1, 'attrset', 'il'
set_global 'ncurses::attrset', $P2
-dlfunc $P2, $P1, 'attr_get', 'i42p'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = $I4
+$P0[2] = $I2
+$P0[3] = .DATATYPE_PTR
+dlfunc $P2, $P1, 'attr_get', $P0
set_global 'ncurses::attr_get', $P2
dlfunc $P2, $P1, 'attr_off', 'ilp'
set_global 'ncurses::attr_off', $P2
@@ -196,7 +236,13 @@ dlfunc $P2, $P1, 'clrtobot', 'i'
set_global 'ncurses::clrtobot', $P2
dlfunc $P2, $P1, 'clrtoeol', 'i'
set_global 'ncurses::clrtoeol', $P2
-dlfunc $P2, $P1, 'color_content', 'is222'
+$P0 = new ['FixedIntegerArray'], 4
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_SHORT
+$P0[2] = $I2
+$P0[3] = $I2
+$P0[4] = $I2
+dlfunc $P2, $P1, 'color_content', $P0
set_global 'ncurses::color_content', $P2
dlfunc $P2, $P1, 'color_set', 'isp'
set_global 'ncurses::color_set', $P2
@@ -270,7 +316,11 @@ dlfunc $P2, $P1, 'immedok', 'vpl'
set_global 'ncurses::immedok', $P2
dlfunc $P2, $P1, 'inch', 'l'
set_global 'ncurses::inch', $P2
-dlfunc $P2, $P1, 'inchnstr', 'i4i'
+$P0 = new ['FixedIntegerArray'], 2
+$P0[0] = .DATATYPE_INT
+$P0[1] = $I4
+$P0[2] = .DATATYPE_INT
+dlfunc $P2, $P1, 'inchnstr', $P0
set_global 'ncurses::inchnstr', $P2
dlfunc $P2, $P1, 'inchstr', 'i4'
set_global 'ncurses::inchstr', $P2
@@ -310,9 +360,20 @@ dlfunc $P2, $P1, 'move', 'iii'
set_global 'ncurses::move', $P2
dlfunc $P2, $P1, 'mvaddch', 'iiil'
set_global 'ncurses::mvaddch', $P2
-dlfunc $P2, $P1, 'mvaddchnstr', 'iii4i'
+$P0 = new ['FixedIntegerArray'], 4
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_INT
+$P0[2] = .DATATYPE_INT
+$P0[3] = $I4
+$P0[4] = .DATATYPE_INT
+dlfunc $P2, $P1, 'mvaddchnstr', $P0
set_global 'ncurses::mvaddchnstr', $P2
-dlfunc $P2, $P1, 'mvaddchstr', 'iii4'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_INT
+$P0[2] = .DATATYPE_INT
+$P0[3] = $I4
+dlfunc $P2, $P1, 'mvaddchstr', $P0
set_global 'ncurses::mvaddchstr', $P2
dlfunc $P2, $P1, 'mvaddnstr', 'iiiti'
set_global 'ncurses::mvaddnstr', $P2
@@ -338,7 +399,12 @@ dlfunc $P2, $P1, 'mvinch', 'lii'
set_global 'ncurses::mvinch', $P2
dlfunc $P2, $P1, 'mvinchnstr', 'iiiti'
set_global 'ncurses::mvinchnstr', $P2
-dlfunc $P2, $P1, 'mvinchstr', 'iii4'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_INT
+$P0[2] = .DATATYPE_INT
+$P0[3] = $I4
+dlfunc $P2, $P1, 'mvinchstr', $P0
set_global 'ncurses::mvinchstr', $P2
dlfunc $P2, $P1, 'mvinnstr', 'iiiti'
set_global 'ncurses::mvinnstr', $P2
@@ -352,9 +418,22 @@ dlfunc $P2, $P1, 'mvvline', 'iiili'
set_global 'ncurses::mvvline', $P2
dlfunc $P2, $P1, 'mvwaddch', 'ipiil'
set_global 'ncurses::mvwaddch', $P2
-dlfunc $P2, $P1, 'mvwaddchnstr', 'ipii4i'
+$P0 = new ['FixedIntegerArray'], 5
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = .DATATYPE_INT
+$P0[3] = .DATATYPE_INT
+$P0[4] = $I4
+$P0[5] = .DATATYPE_INT
+dlfunc $P2, $P1, 'mvwaddchnstr', $P0
set_global 'ncurses::mvwaddchnstr', $P2
-dlfunc $P2, $P1, 'mvwaddchstr', 'ipii4'
+$P0 = new ['FixedIntegerArray'], 4
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = .DATATYPE_INT
+$P0[3] = .DATATYPE_INT
+$P0[4] = $I4
+dlfunc $P2, $P1, 'mvwaddchstr', $P0
set_global 'ncurses::mvwaddchstr', $P2
dlfunc $P2, $P1, 'mvwaddnstr', 'ipiiti'
set_global 'ncurses::mvwaddnstr', $P2
@@ -376,9 +455,22 @@ dlfunc $P2, $P1, 'mvwin', 'ipii'
set_global 'ncurses::mvwin', $P2
dlfunc $P2, $P1, 'mvwinch', 'lpii'
set_global 'ncurses::mvwinch', $P2
-dlfunc $P2, $P1, 'mvwinchnstr', 'ipii4i'
+$P0 = new ['FixedIntegerArray'], 5
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = .DATATYPE_INT
+$P0[3] = .DATATYPE_INT
+$P0[4] = $I4
+$P0[5] = .DATATYPE_INT
+dlfunc $P2, $P1, 'mvwinchnstr', $P0
set_global 'ncurses::mvwinchnstr', $P2
-dlfunc $P2, $P1, 'mvwinchstr', 'ipii4'
+$P0 = new ['FixedIntegerArray'], 4
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = .DATATYPE_INT
+$P0[3] = .DATATYPE_INT
+$P0[4] = $I4
+dlfunc $P2, $P1, 'mvwinchstr', $P0
set_global 'ncurses::mvwinchstr', $P2
dlfunc $P2, $P1, 'mvwinnstr', 'ipiiti'
set_global 'ncurses::mvwinnstr', $P2
@@ -420,7 +512,12 @@ dlfunc $P2, $P1, 'overlay', 'ipp'
set_global 'ncurses::overlay', $P2
dlfunc $P2, $P1, 'overwrite', 'ipp'
set_global 'ncurses::overwrite', $P2
-dlfunc $P2, $P1, 'pair_content', 'is22'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_SHORT
+$P0[2] = $I2
+$P0[3] = $I2
+dlfunc $P2, $P1, 'pair_content', $P0
set_global 'ncurses::pair_content', $P2
dlfunc $P2, $P1, 'PAIR_NUMBER', 'ii'
set_global 'ncurses::PAIR_NUMBER', $P2
@@ -538,9 +635,18 @@ dlfunc $P2, $P1, 'vline', 'ili'
set_global 'ncurses::vline', $P2
dlfunc $P2, $P1, 'waddch', 'ipl'
set_global 'ncurses::waddch', $P2
-dlfunc $P2, $P1, 'waddchnstr', 'ip4i'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I4
+$P0[3] = .DATATYPE_INT
+dlfunc $P2, $P1, 'waddchnstr', $P0
set_global 'ncurses::waddchnstr', $P2
-dlfunc $P2, $P1, 'waddchstr', 'ip4'
+$P0 = new ['FixedIntegerArray'], 2
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I4
+dlfunc $P2, $P1, 'waddchstr', $P0
set_global 'ncurses::waddchstr', $P2
dlfunc $P2, $P1, 'waddnstr', 'ipti'
set_global 'ncurses::waddnstr', $P2
@@ -552,7 +658,13 @@ dlfunc $P2, $P1, 'wattroff', 'ipi'
set_global 'ncurses::wattroff', $P2
dlfunc $P2, $P1, 'wattrset', 'ipi'
set_global 'ncurses::wattrset', $P2
-dlfunc $P2, $P1, 'wattr_get', 'ip42p'
+$P0 = new ['FixedIntegerArray'], 4
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I4
+$P0[3] = $I2
+$P0[4] = .DATATYPE_PTR
+dlfunc $P2, $P1, 'wattr_get', $P0
set_global 'ncurses::wattr_get', $P2
dlfunc $P2, $P1, 'wattr_on', 'iplp'
set_global 'ncurses::wattr_on', $P2
@@ -596,7 +708,12 @@ dlfunc $P2, $P1, 'whline', 'ipli'
set_global 'ncurses::whline', $P2
dlfunc $P2, $P1, 'winch', 'lp'
set_global 'ncurses::winch', $P2
-dlfunc $P2, $P1, 'winchnstr', 'ip4i'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_INT
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I4
+$P0[3] = .DATATYPE_INT
+dlfunc $P2, $P1, 'winchnstr', $P0
set_global 'ncurses::winchnstr', $P2
dlfunc $P2, $P1, 'winnstr', 'ipti'
set_global 'ncurses::winnstr', $P2
@@ -642,15 +759,30 @@ dlfunc $P2, $P1, 'getmouse', 'ip'
set_global 'ncurses::getmouse', $P2
dlfunc $P2, $P1, 'ungetmouse', 'ip'
set_global 'ncurses::ungetmouse', $P2
-dlfunc $P2, $P1, 'mousemask', 'll4'
+$P0 = new ['FixedIntegerArray'], 2
+$P0[0] = .DATATYPE_LONG
+$P0[1] = .DATATYPE_LONG
+$P0[2] = $I4
+dlfunc $P2, $P1, 'mousemask', $P0
set_global 'ncurses::mousemask', $P2
dlfunc $P2, $P1, 'wenclose', 'lpii'
set_global 'ncurses::wenclose', $P2
dlfunc $P2, $P1, 'mouseinterval', 'ii'
set_global 'ncurses::mouseinterval', $P2
-dlfunc $P2, $P1, 'wmouse_trafo', 'lp33l'
+$P0 = new ['FixedIntegerArray'], 4
+$P0[0] = .DATATYPE_LONG
+$P0[1] = .DATATYPE_PTR
+$P0[2] = $I3
+$P0[3] = $I3
+$P0[4] = .DATATYPE_LONG
+dlfunc $P2, $P1, 'wmouse_trafo', $P0
set_global 'ncurses::wmouse_trafo', $P2
-dlfunc $P2, $P1, 'mouse_trafo', 'l33l'
+$P0 = new ['FixedIntegerArray'], 3
+$P0[0] = .DATATYPE_LONG
+$P0[1] = $I3
+$P0[2] = $I3
+$P0[3] = .DATATYPE_LONG
+dlfunc $P2, $P1, 'mouse_trafo', $P0
set_global 'ncurses::mouse_trafo', $P2
dlfunc $P2, $P1, 'mcprint', 'iti'
set_global 'ncurses::mcprint', $P2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment