R      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     Predicate to select exceptions Computation to run Handler  computation to run first ("acquire resource") computation to run last ("release resource") computation to run in-between computation to run first 3computation to run afterward (even if an exception  was raised)     !"#$%&'(  !"#$%&  !"#$%&)*+,-./0123456789:;<)*+,-./0123456789:;<)*+,-./0123456789:;<]=>? ? The getch, wgetch, mvgetch and mvwgetch, routines read a " character from the window. @ABCDEFCGet the current cursor coords, written into the two argument ints.  D The getyx macro places the current cursor position of the given 1 window in the two integer variables y and x. 'void getyx(WINDOW *win, int y, int x); GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx !"#$%&'()*+,yz{-#Map curses keys to key abstraction ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|} initCurses fn0 does all initialization necessary for a Curses  application. ~The standard screen :initscr is normally the first curses routine to call when * initializing a program. curs_initscr(3):  @ To initialize the routines, the routine initscr or newterm @ must be called before any of the other routines that deal , with windows and screens are used. @ The initscr code determines the terminal type and initial- @ izes all curses data structures. initscr also causes the @ first call to refresh to clear the screen. If errors @ occur, initscr writes an appropriate error message to @ standard error and exits; otherwise, a pointer is returned  to stdscr.   The cbreak routine < disables line buffering and erase/kill character-process- < ing (interrupt and flow control characters are unaf- < fected), making characters typed by the user immediately < available to the program. The nocbreak routine returns ' the terminal to normal (cooked) mode.  ? The raw and noraw routines place the terminal into or out @ of raw mode. Raw mode is similar to cbreak mode, in that @ characters typed are immediately passed through to the @ user program. The differences are that in raw mode, the @ interrupt, quit, suspend, and flow control characters are @ all passed through uninterpreted, instead of generating a @ signal. The behavior of the BREAK key depends on other 8 bits in the tty driver that are not set by curses.  A The echo and noecho routines control whether characters B typed by the user are echoed by getch as they are typed. B Echoing by the tty driver is always disabled, but ini- B tially getch is in echo mode, so characters typed are B echoed. Authors of most interactive programs prefer to do B their own echoing in a controlled area of the screen, or B not to echo at all, so they disable echoing by calling B noecho. [See curs_getch(3) for a discussion of how these 4 routines interact with cbreak and nocbreak.]   B The nl and nonl routines control whether the underlying C display device translates the return key into newline on C input, and whether it translates newline into return and C line-feed on output (in either case, the call addch('\n') C does the equivalent of return and line feed on the virtual C screen). Initially, these translations do occur. If you C disable them using nonl, curses will be able to make bet- C ter use of the line-feed capability, resulting in faster C cursor motion. Also, curses will then be able to detect  the return key.   B If the intrflush option is enabled, (bf is TRUE), when an C interrupt key is pressed on the keyboard (interrupt, C break, quit) all output in the tty driver queue will be C flushed, giving the effect of faster response to the C interrupt, but causing curses to have the wrong idea of C what is on the screen. Disabling (bf is FALSE), the $ option prevents the flush.  Enable the keypad of the user' s terminal. ;Normally, the hardware cursor is left at the location of @ the window cursor being refreshed. The leaveok option @ allows the cursor to be left wherever the update happens @ to leave it. It is useful for applications where the cur- @ sor is not used, since it reduces the need for cursor @ motions. If possible, the cursor is made invisible when  this option is enabled.  C The program must call endwin for each terminal being used before  exiting from curses. !get the dimensions of the screen 2refresh curses windows and lines. curs_refresh(3) HDo an actual update. Used after endWin on linux to restore the terminal Set a delay in milliseconds. ;Initialise the color settings, also sets the screen to the ! default colors (white on black) BcolorPairs defines the maximum number of color-pairs the terminal  can support). ;curses support color attributes on terminals with that @ capability. To use these routines start_color must be @ called, usually right after initscr. Colors are always @ used in pairs (referred to as color-pairs). A color-pair @ consists of a foreground color (for characters) and a @ background color (for the blank field on which the charac- @ ters are displayed). A programmer initializes a color- @ pair with the routine init_pair. After it has been ini- 4 tialized, COLOR_PAIR(n), a macro defined in  curses.h, + can be used as a new video attribute. ;If a terminal is capable of redefining colors, the pro- @ grammer can use the routine init_color to change the defi-  nition of a color. ;The init_pair routine changes the definition of a color- @ pair. It takes three arguments: the number of the color- @ pair to be changed, the foreground color number, and the : background color number. For portable applications: : The value of the first argument must be between 1 and  COLOR_PAIRS-1. : The value of the second and third arguments must be @ between 0 and COLORS (the 0 color pair is wired to 1 white on black and cannot be changed). Hmanipulate the current attributes of the named window. see curs_attr(3) Normal display (no highlight) Setting attributes  normalise the string, stripping \r and making control chars & printable. Called over all output(?)  / move the cursor associated with the window ? to line y and column x. This routine does not move the ? physical cursor of the terminal until refresh is called. ? The position specified is relative to the upper left-hand * corner of the window, which is (0,0).  Note that I may be a macro.  / move the cursor associated with the window ? to line y and column x. This routine does not move the ? physical cursor of the terminal until refresh is called. ? The position specified is relative to the upper left-hand * corner of the window, which is (0,0). Set the cursor state B The curs_set routine sets the cursor state is set to B invisible, normal, or very visible for visibility equal to B 0, 1, or 2 respectively. If the terminal supports the B visibility requested, the previous cursor state is - returned; otherwise, ERR is returned. #Get the current cursor coordinates !read a character from the window @The SIGWINCH signal is sent whenever the terminal size changes. J This signal is not available on all platforms, so it is a |Maybe| value.       !"#$%& !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&%$#"! &'()*+,-~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.      !"#$%&%$#"!  !"#$%&'()*+,'()*+,-]~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&N';A style which uses the internal curses representations for  attributes and colors. (A humand-readable style. )*+,0Abstractions for some commonly used attributes. -./012Background colors. 3456789:;<Foreground colors. =>?@ABCDEFGHIJKLMNstart, initializes the UI and grabs the keyboard. 9This function installs a handler for the SIGWINCH signal G which writes the KEY_RESIZE key to the input queue (if KEY_RESIZE and # and SIGWINCH are both available). OClean up and go home. PSuspend the program. QgetKey refresh reads a key. The refresh> function is used to redraw the screen when the terminal size " changes (see the documentatio of start# for a discussion of the problem). R drawLine n s draws n characters of string s. S'Draw the cursor at the given position. T!Move cursor to origin of stdScr. UResize the window  From Writing Programs with NCURSES, by Eric S. Raymond and  Zeyd M. Ben-Halim VBasic colors. WXYZ[\]^Converts a list of  pairs (foreground color and 4 background color) into the curses representation . DYou should call this function exactly once, at application startup. "(not visible outside this module) ;Mapping abstract colours to ncurses attributes and colours "(not visible outside this module) _DConverts an abstract attribute list into its curses representation. `ab1Changes the attributes of the given CursesStyle. cd"Reset the screen to normal values e4Manipulate the current style of the standard screen fg@Converts a list of human-readable styles into the corresponding  curses representation. CThis function should be called exactly once at application startup & for all styles of the application. h+Converting keys to humand-readable strings iOther helpers set the cursor, and do action jD'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijDNOPUQRST<MLKJIHGFEDCBA@?>=2;:9876543VWXYZ[\]^,10/.-_(+*)'abedg`cfhijD'(+*))*+,10/.--./012 ;:98765433456789:;<MLKJIHGFEDCBA@?>==>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     Join a list by some delimiter Split a list by some delimiter klmnopqrstuvwxyz{|}~     |~}vwxyz{klmnopqrstu     k lmnopqrstulmnopqrstuvwxyz{wxyz{|~}}~           !"#$%&'()*+,-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./-0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~, hscurses-1.3UI.HSCurses.MonadExceptionUI.HSCurses.LoggingUI.HSCurses.CursesUI.HSCurses.CursesHelperUI.HSCurses.WidgetsUI.HSCurses.CWStringUI.HSCurses.IConv MonadExcIOMonadExccatchMblockMunblockM catchJustMhandleM handleJustMtryMtryJustM catchDynMbracketM bracketM_finally modifyState catchState blockState unblockStatetracedebug noqiflushflushinpgetchvline waddchnstrwaddchstandendstandoutuseDefaultColors ButtonEvent ButtonAlt ButtonControl ButtonShiftButtonTripleClickedButtonDoubleClicked ButtonClickedButtonReleased ButtonPressed MouseEvent mouseEventId mouseEventX mouseEventY mouseEventZmouseEventButtonKey KeyUnknownKeyMouse KeyResizeKeyUndo KeySuspendKeySUndo KeySSuspendKeySSave KeySRsume KeySRight KeySReplaceKeySRedo KeySPrint KeySPrevious KeySOptionsKeySNextKeySMove KeySMessageKeySLeftKeySICKeySHomeKeySHelpKeySFindKeySExitKeySEOLKeySEnd KeySelectKeySDLKeySDC KeySCreateKeySCopy KeySCommand KeySCancelKeySBegKeySave KeyResume KeyRestart KeyReplace KeyRefresh KeyReferenceKeyRedo KeyPrevious KeyOptionsKeyOpenKeyNextKeyMove KeyMessageKeyMarkKeyHelpKeyFindKeyExitKeyEnd KeyCreateKeyCopy KeyCommandKeyClose KeyCancelKeyBegKeyBTabKeyC3KeyC1KeyB2KeyA3KeyA1KeyLLKeyPrintKeyReset KeySResetKeyEnterKeyCATabKeyCTabKeySTabKeyPPageKeyNPageKeySRKeySFKeyEOLKeyEOSKeyClearKeyEICKeyICKeyDCKeyILKeyDLKeyF KeyBackspaceKeyHomeKeyRightKeyLeftKeyUpKeyDownKeyBreakKeyCharCursorVisibilityCursorVeryVisible CursorVisibleCursorInvisibleAttrColorPairNBoolChTypeWindow initCurses resetParams throwIfErr throwIfErr_errIstdScrinitScrcBreakrawechonl intrFlushkeypadnoDelayleaveOkclearOkdefaultBackgrounddefaultForegroundendWinscrSizerefreshupdatetimeout hasColors startColor colorPairscolorscolorinitPair pairContentcanChangeColor initColor colorContentwAttrSetwAttrGetattr0 isAltCharsetisBlinkisBoldisDim isHorizontalisInvisisLeftisLow isProtect isReverseisRight isStandoutisTop isUnderline isVertical setAltCharsetsetBlinksetBoldsetDim setHorizontalsetInvissetLeftsetLow setProtect setReversesetRight setStandoutsetTop setUnderline setVerticalattrPlusattrSetattrOnattrOffwAttrOnwAttrOff attrDimOn attrDimOff attrBoldOn attrBoldOffattrDimattrBold mvWAddStrmvAddChaddLnwAddStr bkgrndSeterasewclearclrToEolmovewMovecursSetgetYXtouchWinnewPadpRefreshdelWinnewWin wClrToEolbeep decodeKey keyResizeCodecERRcKEY_UP cKEY_DOWN cKEY_LEFT cKEY_RIGHTcTRUEungetChgetChresizeTerminalcursesSigWinch cursesTestwithMouseEventMaskulCornerllCornerurCornerlrCornerrTeelTeebTeetTeehLinevLinepluss1s9diamondckBoarddegreeplMinusbulletlArrowrArrowdArrowuArrowboardlanternblocks3s7lEqualgEqualpinEqualsterling recognize CursesStyleStyleColorlessStyleAttributeStyle AttributeBlinkReverseDim UnderlineBoldBackgroundColorDefaultBWhiteB DarkCyanBPurpleB DarkBlueBBrownB DarkGreenBDarkRedBBlackBForegroundColorDefaultF BrightWhiteFWhiteFCyanF DarkCyanFMagentaFPurpleFBlueF DarkBlueFYellowFBrownFGreenF DarkGreenFRedFDarkRedFGreyFBlackFstartendsuspendgetKeydrawLine drawCursorgotoTopresizeui defaultColorblackredgreenyellowbluemagentacyanwhiteconvertAttributes defaultStyle mkCursesStylechangeCursesStyledefaultCursesStyle resetStylesetStyle withStyle convertStyles displayKey withCursor withProgramTableWidgetDisplayInfoTBWDisplayInfotbwdisp_height tbwdisp_widthtbwdisp_firstVistbwdisp_lastVis tbwdisp_rows tbwdisp_nrowstbwdisp_heightstbwdisp_widthstbwdisp_rightMarginTableWidgetOptions TBWOptionstbwopt_fillColtbwopt_fillRowtbwopt_activeColstbwopt_minSizeFillRowNoneLastFirst TableWidgettbw_rows tbw_colOffsettbw_pos tbw_optionsRow TableCellActiveTableCellTextWidgetOptions TWOptions twopt_size twopt_style twopt_halignTextWidgetSize TWSizeFixed TWSizeDefault TextWidgettw_text tw_yoffset tw_xoffset tw_optionsEditWidgetOptions EWOptionsewopt_keyHandlersewopt_minWidth ewopt_style EditWidget ew_content ew_xoffset ew_xcursor ew_historyew_historyIndexew_historySavedContent ew_options OpaqueWidget EmptyWidget DrawingStyleDStyle dstyle_normal dstyle_focus dstyle_active DrawingHintDHActiveDHFocusDHNormal KeyHandler ActiveWidgetactivateWidgetdrawminSizeContDone HAlignment AlignRight AlignCenter AlignLeft DirectionDirDownDirUpDirRightDirLeftSizeOffsetPos getHeightgetWidth getYOffset getXOffsetgetYPosgetXPos mkKeyHandlermkDrawingStyledefaultDrawingStyle_draw scrollFactorscrollBy scrollForwardscrollBackward ew_contentPosdefaultEWOptions newEditWidgeteditWidgetGoLefteditWidgetGoRighteditWidgetDeleteLefteditWidgetDeleteUnderCursoreditWidgetDeleteToEndeditWidgetGoHomeeditWidgetGoEndeditWidgetHistoryUpeditWidgetHistoryDowneditWidgetKeyHandlerseditWidgetGetContenteditWidgetSetContenteditWidgetGetOptionseditWidgetSetOptionsdrawEditWidgetactivateEditWidgeteditWidgetGoLeft'editWidgetGoRight'editWidgetDeleteLeft'editWidgetDeleteUnderCursor'editWidgetDeleteToEnd'editWidgetGoHome'editWidgetGoEnd'editWidgetFinishmaxHistoryLength addToHistoryeditWidgetHistoryUp'editWidgetHistoryDown'editWidgetHistorydefaultTWOptions newTextWidgetdrawTextWidgettextWidgetGetTexttextWidgetSetTexttextWidgetScrollDowntextWidgetScrollUptextWidgetScrollLefttextWidgetScrollRightisActive_activateTableCell singletonRow getCellWidget setCellWidgetdefaultTBWOptionsnewTableWidgettableWidgetDisplayInfo getCellInfodrawTableWidgettableWidgetScrollDowntableWidgetScrollUptableWidgetActivateCurrenttableWidgetGoLefttableWidgetGoRighttableWidgetGoUptableWidgetGoDowntableWidgetMovetableWidgetMakeVisiblefindFirstActiveCellfindNextActiveCelltableWidgetDeleteRow joinLists splitList listReplace alignRowsaligndeleteAt withLCStringwithLCStringLen newLCStringnewLCStringLen peekLCStringpeekLCStringLenwithUTF8StringwithUTF8StringLen newUTF8StringnewUTF8StringLenpeekUTF8StringpeekUTF8StringLentoUTFfromUTFc_iconv c_iconv_close c_iconv_openIConverr_ptrthrow_if_not_2_big iconv_open iconv_close outbuf_sizedo_iconv with_iconviconv_iconv cuni_charset peek_cuni with_cuni to_unicode_ to_unicode from_unicode_ from_unicode mousemaskc_flashc_beep wclrtoeolnewwindelwinnewpadprefreshtouchwin nomacro_getyxcurs_setwmovemove_cclrtoeolwclear_cwerase_cbkgdset mvaddch_cwaddnstrwattroffwattronattroffattronattr_offattr_on wattr_get wattr_setattr_set colorPair color_content init_colorcan_change_color pair_content init_pair colorsPtr colorPairsPtr start_color has_colors timeout_cupdate_c refresh_ccolsPtrlinesPtrendwin define_key clearok_c leaveok_cnodelaykeypad_c intrflushnonlnl_cecho_cnoechoraw_cnorawnocbreakcbreakinitscrstdscrBufData DataViaGetch BufDirect WindowTagfi defineKeyisAttrsetAttrvis_cc_visinputBufgetchToInputBufbesToMouseMaskColorlessCursesStyle colorsToPairs convertBg convertFgsetBoldA setUnderlineAsetDimA setReverseA setBlinkA