{"id":14990821,"url":"https://github.com/as400jplpc/zig_termcurs","last_synced_at":"2025-04-12T03:24:51.764Z","repository":{"id":174037804,"uuid":"651661543","full_name":"AS400JPLPC/zig_TermCurs","owner":"AS400JPLPC","description":"Terminal access function Zig-Lang  and Generator","archived":false,"fork":false,"pushed_at":"2025-03-14T23:47:17.000Z","size":31678,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T23:01:49.755Z","etag":null,"topics":["curses-library","generator","linux","terminal","zig","zig-lang"],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AS400JPLPC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-09T18:49:27.000Z","updated_at":"2025-03-21T02:38:03.000Z","dependencies_parsed_at":"2024-04-23T21:39:05.310Z","dependency_job_id":"341b379d-8c3a-4573-b7c1-3072253ff003","html_url":"https://github.com/AS400JPLPC/zig_TermCurs","commit_stats":{"total_commits":81,"total_committers":1,"mean_commits":81.0,"dds":0.0,"last_synced_commit":"69b5e6358d4cfad7be8dc5fdbf51416a30ae8e89"},"previous_names":["as400jplpc/zig_termcurs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fzig_TermCurs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fzig_TermCurs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fzig_TermCurs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AS400JPLPC%2Fzig_TermCurs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AS400JPLPC","download_url":"https://codeload.github.com/AS400JPLPC/zig_TermCurs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248511095,"owners_count":21116353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["curses-library","generator","linux","terminal","zig","zig-lang"],"created_at":"2024-09-24T14:20:54.801Z","updated_at":"2025-04-12T03:24:51.757Z","avatar_url":"https://github.com/AS400JPLPC.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zig_TermCurs\n\nterminal access function \u003cbr /\u003e\n\u003cu\u003e**zig 0.14.0**\u003c/u\u003e\u003cBR /\u003e\n\u003cbr /\u003e\n\n**Major library restructuring:**\nremove library\nLibtui (curse, log, calling, crypt, mmap,regex)\nLibznd (decimal,field,date)\nlibsql currently only includes sqlite, postgresql to follow\n\nAll builds have been changed accordingly \n\nThe aim is to make projects independent\n\n\n\n\n\n\n**TESTING** \u003cbr /\u003e\n*look at the bottom of the testing page* \u003cbr /\u003e\n\n**os linux** \u003cbr /\u003e\n\u003cu\u003eNormally should work POSIX \u003c/u\u003e\u003cbr /\u003e\n\u003cbr /\u003e\n**the termcurs library, does what ncurse does (hopefully).\u003cbr /\u003e\nit manages the interface between the terminal and the user.\u003cbr /\u003e\nas does the 5250 of the OS400 with PC sauce.\u003cbr /\u003e\nPanel, window, field, grid, menu etc.\u003cbr /\u003e\nthis can be used with a terminal with some editing eg: F10 etc. for convenience.\u003cbr /\u003e\nthe easiest way is to make your own terminal with libvte of which I provide an example in the src-c folder.\u003cbr /\u003e\nthis produces very lightweight programs for doing utilities or intensive typing for business management.\u003cbr /\u003e\nCurrently everything is not operational and the goal is to make a screen generator to simplify development, considering that this is only secondary and that the heart of the problem is the program itself and not the interface.\u003cbr /\u003e**\n\u003cbr /\u003e\n** I use the gencurs program to thoroughly test the termcurs lib.\u003cbr /\u003e**\n\u003cbr /\u003e\n\u003cBR /\u003e\nThank you\u003cbr/\u003e\na little more : XYAMAN\nResumption of the project https://github.com/xyaman/mibu\u003cBR /\u003e\n\nThank you\u003cBR /\u003e\nhttps://zig.news/\u003cBR /\u003e\nhttps://zig.news/lhp/want-to-create-a-tui-application-the-basics-of-uncooked-terminal-io-17gm\u003cBR /\u003e\u003cBR /\u003e\nthank you for your valuable explanations   David Vanderson\u003cbr /\u003e\nhttps://zig.news/david_vanderson\u003cbr /\u003e \u003cbr /\u003e\nStructure the complex build\nhttps://zig.news/xq/zig-build-explained-part-3-1ima \u003cBR /\u003e\u003cbr /\u003e\n\nthank you for your valuable explanations  Sam Atman \nhttps://github.com/mnemnion/mvzr/\u003cBR /\u003e \u003cbr /\u003e\n\n\nextra..., to follow and have a history\nhttps://github.com/kissy24/zig-logger/\u003cBR /\u003e \u003cbr /\u003e\n\u003cbr /\u003e\n\n![](assets/20230605_135950_Exemple.png)\n\u003cbr /\u003e\n\n**In the example, some errors are introduced such as the mail, all of this is voluntary and allows you to see the default interaction of the input control.\u003cbr /\u003e**\n\u003cbr /\u003e\n\n![](assets/20230213_012619_mdlPanel.png)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n![](assets/20230812_012345_Field.png)\n\n---\n\n\u003cBR/\u003e\u003cBR/\u003e\n\n\n| Field                | Regex        | Text     | Type                                   |\n| -------------------- | ------------ | -------- | -------------------------------------- |\n| TEXT_FREE            | Y            | Y        | Free                                   |\n| TEXT_FULL            | Y            | Y        | Letter Digit Char-special              |\n| ALPHA                | Y            | Y        | Letter                                 |\n| ALPHA_UPPER          | Y            | Y        | Letter                                 |\n| ALPHA_NUMERIC        | Y            | Y        | Letter Digit espace -                  |\n| ALPHA_NUMERICT_UPPER | Y            | Y        | Letter Digit espace -                  |\n| PASSWORD             | N            | Y        | Letter Digit and normaliz char-special |\n| YES_NO               | N            | Y        | 'y' or 'Y' / 'o' or 'O'                |\n| UDIGIT               | N            | Y        | Digit unsigned                         |\n| DIGIT                | N            | Y        | Digit signed                           |\n| UDECIMAL             | N            | Y        | Decimal unsigned                       |\n| DECIMAL              | N            | Y        | Decimal signed                         |\n| DATE_ISO             | DEFAULT      | Y        | YYYY/MM/DD                             |\n| DATE_FR              | DEFAULT      | Y        | DD/MM/YYYY                             |\n| DATE_US              | DEFAULT      | Y        | MM/DD/YYYY                             |\n| TELEPHONE            | Y OR DEFAULT | Y        | +(033) 6 00 01 00 02                   |\n| MAIL_ISO             | DEFAULT      | Y        | normalize mail regex                   |\n| SWITCH               | N            | N / BOOL | CTRUE CFALSE                           |\n| FUNC                 | N            | y        | **dynamic function call**              |\n| TASK                 | N            | y        | **dynamic function call ex: control**  |\n| CALL                 | N            | y        | **dynamic call exter                   |\n|                      |              |          |                                        |\n\n\n\u003cBR/\u003e\nMOUSE\u003cBR/\u003e\n\n\n| Type   | up | down | left | Middle | right | X/Y |\n| -------- | ---- | ------ | ------ | -------- | ------- | ----- |\n| Menu   | Y  | Y    | Y    | Y      | Y     | N   |\n| GRID   | Y  | Y    | Y    | Y      | Y     | N   |\n| FIELD  | Y  | Y    | Y    | Y      | Y     | N   |\n| getKEY | Y  | Y    | Y    | Y      | Y     | Y   |\n| \u003cBR/\u003e  |    |      |      |        |       |     |\n\n\u003cBR/\u003e\nFIELD\u003cBR/\u003e\n\n\n\n\n| KEY       | text                                           |\n| ----------- | ---------------------------------------------|\n| MOUSE     | mouse array reference                          |\n| escape    | Restores the original area                     |\n| ctrl-H    | Show help                                      |\n| ctrl-P    | exec program extern                            |\n| home      | Position at start of area                      |\n| end       | Position at end   of area                      |\n| right     | Position + 1 of area                           |\n| tab       | Position + 1 of area                           |\n| left      | Position - 1 of area                           |\n| shift tab | Position - 1 of area                           |\n| bacspace  | Position  of area and delete char              |\n| insert    | Position  of area   change cursor              |\n| enter     | Control valide update origine next field       |\n| up        | Control valide update origine prior field      |\n| down      | Control valide update origine next field       |\n| char      | Treatment of the character of the area         |\n| func      | Interactive function linked to the input area. |\n| task      | Task executed after input in the zone.         |\n| call      | Interactive function exec program extern       |\n\n\u003cBR/\u003e\n\nGRID\u003cBR/\u003e\n\n\n| KEY      | text         |\n| ---------- | -------------- |\n| MOUSE    | active       |\n| escape   | return key   |\n| F12      | return key   |\n| enter    | return ligne |\n| up       | prior  ligne |\n| down     | next   ligne |\n| pageUp   | prior  page  |\n| pageDown | next   page  |\n| return   | Arg          |\n\n\u003cBR/\u003e\n\nCOMBO\u003cBR/\u003e\n\n\n| KEY      | text                   |\n| ---------- | ------------------------ |\n| CellPos  | Position start display |\n| MOUSE    | active                 |\n| escape   | return key             |\n| enter    | return field           |\n| up       | prior  ligne           |\n| down     | next   ligne           |\n| pageUp   | prior  page            |\n| pageDown | next   page            |\n| \u003cBR/\u003e    |                        |\n\n\u003cBR/\u003e\u003cBR/\u003e\n\n\n\u003cu\u003e---Organization-project------------------------------------------\u003c/u\u003e\u003cBR /\u003e\n\u0026rarr;\u0026nbsp; folder deps: Filing of files zig including reference sources \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; folder libtui:   zig       source files \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; folder libznd:   zig       source files \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; folder libsql:   zig       source files \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; folder src_c:    C/C++     source files \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; folder src_zig:  ZIG-lang  source files \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; build: build+source-name ex: buildexemple \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; makefile \u003cbr /\u003e\n\u003cbr /\u003e \u003cbr /\u003e\n**LIBRARY**\n\n![](assets/20240815_012345_library.png)\n\n\n\u003cbr /\u003e\u003cbr /\u003e\n\u003cu\u003e--peculiarity-------------------------------------------------\u003c/u\u003e\u003cBR /\u003e\ntest alt-ctrl ctrshift... etc for \u003cbr /\u003e\n\nBut it is no longer transportable.\nanother way is to use IOCTL but again, there is a good chance of being forced to use root.\n\nAnyway, to make management applications or Terminal type tools are more than enough.\n\nctrl or alt combinations plus Fn(1..36) TAB Backspace home end insert delete pageup pagedown enter escape alt ctrl left rigth up down altgr mouse\nand the utf8 keyboard is a lot.\u003cbr /\u003e\n\n\u003cu\u003e--styling-------------------------------------------------\u003c/u\u003e\u003cBR /\u003e\nmake it compatible as close as possible to IBM 400 ex:\u003cbr /\u003e\n\u003cbr /\u003e\nex: pub const AtrLabel : stl.ZONATRB = .{\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;.styled=[_]i32{@enumToInt(stl.Style.styleBright),\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;@enumToInt(stl.Style.styleItalic),\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;@enumToInt(stl.Style.notstyle),\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;@enumToInt(stl.Style.notstyle)},\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;.backgr = stl.BackgroundColor.bgBlack,\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;.backBright = false,\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;.foregr = stl.ForegroundColor.fgGreen,\u003cbr /\u003e\n\u0026nbsp;\u0026nbsp;\u0026nbsp;.foreBright = true \u003cbr /\u003e\n};\n\n\u003cu\u003e-------Current treatments------------------------------------\u003c/u\u003e\u003cBR /\u003e\n\u0026rarr;\u0026nbsp; forms.zig \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; fram / panel / label /button / Menu / Grid / Combo / dynamic function Exec ** OK \u003cbr /\u003e\n\u0026rarr;\u0026nbsp; Preparation of \"Field\" processing as well as keyboard input.\n\nPlease wait, if there are bugs everything is not fixed.\u003cbr /\u003e\n\n\u003cu\u003e-------TESTING------------------------------------\u003c/u\u003e\u003cBR /\u003e\n\u0026rarr;\u0026nbsp; *Use the gtk Term.c terminal, it's much simpler terminals  ex: exf4-terminal* \u003cbr /\u003e\n\u003cu\u003e-------To write and think--------------------------------\u003c/u\u003e\u003cBR /\u003e\n\u0026rarr;\u0026nbsp; inspiration `\u003cbr /\u003e`\n\n* [nim-termcurs](https://github.com/AS400JPLPC)\u003cbr /\u003e\n\n\u003cu\u003e---------------------------------------------------------\u003c/u\u003e\u003cBR /\u003e\n\u003cbr /\u003e\n|   for information|\n→  2023-02-28\u003cbr /\u003e\nHello, it is now possible to use a terminal without leaving a trace, I added in \"curse\" the \"reset\" function,\non the other hand, i included in the cls function the underlying cleanup of the terminal, i put here the terminal start function for, you help ( xfce4-terminal --hide-menubar --hide-scrollbar --hide -toolbar --geometry=\"158x42\" --font=\"DejaVu Sans Mono 12\" just add -e ./...program \u003cbr /\u003e\n→  2023-02-28\u003cbr /\u003e\n**Applications no longer need lib-GTK VTE**\nin general to debug well, to use the console, it is advisable to deactivate preferences F10 and ALT... ,\nthen compile with SMALL and to ensure violation of ALT-F4 use the cpp program gtk-vte an example is there.\nBut in terminal mode the application is viable (to do with the commit data-base)\u003cbr /\u003e\n\u003cbr /\u003e\n→  2023-02-05 Doc version 0.11.1 \"view use TermCurs\"\n[READ-DOCS](http://htmlpreview.github.io/?https://github.com/AS400JPLPC/zig_TermCurs/blob/master/Docs_Exemples/index.html) \u003cbr /\u003e\n\u003cBR/\u003e\n\n\n![](assets/20231129_012345_Gen00.png)\n\n\u003cbr /\u003e\n\n![](assets/20231122_012345_Gen01.png)\n\u003cBR /\u003e\n\u003cBR /\u003e\nles news:\u003cBR /\u003e\n\u003cbr /\u003e\n→  2024-01-04\u003cbr /\u003e\nLINUX\u003cbr /\u003e\nShould it work with MAC?\u003cbr /\u003e\nTRADUCTOR chatgpt\u003cbr /\u003e\nHello, there are very significant changes, why?\u003cbr /\u003e\nFirstly, for better memory management.\u003cbr /\u003e\nGreater coherence.\u003cbr /\u003e\nAll modules have their own allocators.\u003cbr /\u003e\nAvoiding back-and-forth between modules.\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\"CURSED\" (named in memory of \"NCURSEW\"):\u003cbr /\u003e\nEncompasses everything needed for writing to a terminal, including reading keyboard codes, mouse management, cursor handling, UTF8 work. I may introduce the \"termios\" concept for META codes. I took advantage of the restructuring to bring clarification.\u003cbr /\u003e\n\u003cbr /\u003e\n\"FORMS\":\u003cbr /\u003e\nIncludes management for:\u003cbr /\u003e\nLABEL - BUTTON - LINEV - LINEH - FIELD - FRAME - PANEL\u003cbr /\u003e\nWorks with a matrix corresponding to the terminal surface so that the window can be restored. The FORMS allocator is designed for Fields and panel initialization. FORMS no longer includes GRID management, which is autonomous, nor MENU, which is autonomous\u003cbr /\u003e\n\u003cbr /\u003e\n\"GRID\":\u003cbr /\u003e\nFunctions similarly to forms, allowing the display and retrieval of arguments either from a database or working as a combo. It is autonomous, but you must consider that it should be included in your Panel, as it positions itself within the terminal window.\u003cbr /\u003e\n\u003cbr /\u003e\n\"MENU\":\u003cbr /\u003e\nOperates like GRID but is much simplified; the returned argument is usize.which doesn't work with the matrix but directly with the terminal.\u003cbr /\u003e\n\u003cbr /\u003e\n\"UTILS\": (various tools and functions)\u003cbr /\u003e\nContains various functions to manage the control needs of FIELD or STRING management ([] u8 const).\u003cbr /\u003e\n\u003cbr /\u003e\nThe Example program demonstrates how to manage and use these functions. A tip: the first Panel can serve as the definition of the terminal window.\u003cbr /\u003e\n\u003cbr /\u003e\n\"MATCH\": (regex MVZR pur zig)\u003cbr /\u003e\n\u003cbr /\u003e\n\"LOGGER\": \u003cbr /\u003e\nAllows for a written record of variables or waypoints.\u003cbr /\u003e\n\u003cbr /\u003e\n\"CALLPGM\": Executes in Zig mode, manages the call and the wait.\u003cbr /\u003e\n\u003cbr /\u003e\n\n→  PANEL\u003cBR/\u003e\nAdding the 'mdlPanel' function.\u003cbr /\u003e\n- F2   : view panel\u003cBR/\u003e\n- F6   : Choix panel for update\u003cBR/\u003e\n- F9   : Create Panel\u003cBR/\u003e\n- F11  : Update Panel\u003cBR/\u003e\n- F12  : return\u003cBR/\u003e\n\n\n→  FORMS\u003cBR/\u003e\nAdding the 'mdlForms' function.\u003cbr /\u003e\n- F1   : help\u003cBR/\u003e\n- F11  : update and return\u003cBR/\u003e\n- F12  : return\u003cBR/\u003e\n- Alt-T: Create Title\u003cBR/\u003e\n- Alt-L: Create Label\u003cBR/\u003e\n- Alt-F: Create Field\u003cBR/\u003e\n- Alt-G: View Grid\u003cBR/\u003e\n- Alt-U: Update Field\u003cBR/\u003e\n- Alt-H: Creat Line Horizontal\u003cBR/\u003e\n- Alt-V: Creat Line Vertical\u003cBR/\u003e\n- Alt-W: Tools menu (View ,  Order , Remove )\u003cbr /\u003e\n\n→  GRID\u003cBR/\u003e\nAdding the 'mdlGrid' function.\u003cbr /\u003e\n- F1   : help\u003cBR/\u003e\n- F11  : update and return\u003cBR/\u003e\n- F12  : return\u003cBR/\u003e\n- Alt-G: Create GRID definition\u003cBR/\u003e\n- Alt-C: Create text columns\u003cBR/\u003e\n- Alt-R: Remove GRID\u003cBR/\u003e\n- Alt-W: Tools menu (View GRID, View Cell, Order Cell, Remove Cell)\u003cbr /\u003e\n\n\n→  MENU\u003cBR/\u003e\nAdded MENU definition function\nyou have to understand the menu option as a fixed combo with constant values \u003cbr /\u003e\n- F1   : help\u003cBR/\u003e\n- F11  : update and return\u003cBR/\u003e\n- F12  : return\u003cBR/\u003e\n- Alt-M: Create MENU definition\u003cBR/\u003e\n- Alt-C: Create / UPDATE  text columns\u003cBR/\u003e \n- Alt-V: View MENU\u003cbr /\u003e\n- Alt-D: Remove MENU\u003cbr /\u003e\n- Alt-H: display higth MENU\u003cBR\u003e\n- Alt-L: display low MENU\u003cBR\u003e\n- Alt-X: Fixed display work menu\u003cbr /\u003e\n- Alt-R: Fefresh terminal\u003cbr /\u003e\n\n\n\n→  Gensrc\u003cBR/\u003e\nAdded Gensrc definition Programme\u003cbr /\u003e\n- Folder       : choix du model \u003cBR/\u003e\n- Control    : list control \u003cBR/\u003e\n- List       : List of the DSPF nomencalature \u003cBR/\u003e\n- Link-Combo : combo assignment    CtrlV validation \u003cBR/\u003e\n- SrcMenu    : output srs-lst \u003cBR/\u003e\n- SrcForms   : output srs-lst \u003cBR/\u003e\n- Clear *all : Cleaning arraylist buffers\u003cBR/\u003e \n- Exit       : Exit \u003cBR/\u003e\n\n\u003cBR/\u003e\n\u003cBR/\u003e\n\u003cBR/\u003e\n\u003cBR/\u003e\n\n→ 2024-11-20 15:40\u003cBR/\u003e\n-  update library CURSED  -\u003e Modification of keyboard key retrieval for a terminal in a more functional way. \u003cBR/\u003e\n-  update module MDLFILE  -\u003e Improved sorting algorithm integrated, with the ability to add a file attribute.\u003cBR/\u003e\n-  I am currently testing source code generation, and sometimes I question my code, particularly the way I approach the matrix.\u003cBR/\u003e\n\u003cBR/\u003e\n\n→ 2024-11-23 15:40\u003cBR/\u003e\n-  update MOUSE  -\u003e click Left Middle = none click Right Enter for MENU and GRID \u003cBR/\u003e\n-  new module    -\u003e Gensrc SrcMenu SrcForms générate source main\u003cBR/\u003e\n-  I am currently testing source code generation, and sometimes I question my code, particularly the way I approach the matrix.\u003cBR/\u003e\n-  update ENV-WORK\u003cBR/\u003e\n-  update MenuDEV.sh new MenuTEST.sh\u003cbr/\u003e\n-  First test Gensrc - srcforms - srcMenu \u003cBR/\u003e\n-  folder OUT-ZIG to test \u003cBR/\u003e\n-  use for test only folder(repertoire) \n\u003cBR/\u003e\u003cBR/\u003e\n→ 2024-11-26 20:28\u003cBR/\u003e\nPlease refer to the files in the directory: dspf/repertoire/.\u003cBR/\u003e\nYou will notice that function keys are assigned, such as F9 for adding a record and F11 for updating a record; these are standard industrial practices recommended in management.\u003cBR/\u003e\nYou can compare the output source with the SRC program.\u003cBR/\u003e\n\u003cBR/\u003e\u003cBR/\u003e\u003cBR/\u003e\n→ 2024-12:18 00:00\u003cBR/\u003e\n\n\"I have refactored all the sources to make them compatible with Zig's LSP and code editors: all indentation tabs are spaces '....' and not '→'.\nAt the moment, I just finished testing the decimal function, and I now need to test the zstring function to ensure everything complies with industrial SQL database standards, such as varchar(10) or decimal(5,2).\nFor decimal, see my Git repository Zdecimal; the number of digits goes far beyond the limitations of C or Zig.\"\n\n\u003cBR/\u003e\n→ 2024-12-19 04:20\u003cBR/\u003e\nadd ztring \n\u003cBR/\u003e\n→ 2024-12-21 04:20\u003cBR/\u003e\n  harmonization of functions between ZSTRING AND DECIMAL, in order to have a simplification in programming\u003cbr\u003e\n\u003cBR/\u003e\n→ 2025-01-05 02:52\u003cBR/\u003e\n    Fixed bug for range detected zig 0.14.0-dev.2598 from \"mdlforms\" / \"mdlgrids\".\u003cBR/\u003e\n    err: for (vgrd.items[gridNum].pageRows)...\u003cBR/\u003e\n    ex: for (0..vgrd.items[gridNum].pageRows)...\u003e\u003cBR/\u003e\n\u003cBR/\u003e\n→ 2025-01-05 18:31 update Terminal.7z clear cache \u003cBR/\u003e\n\u003cBR/\u003e\n→ 2025-01-16 10:32 \u003cBR/\u003e\n\u003c/BR\u003e\n\u003cBR/\u003e\n→ 2025-03-12 02:52   update 0.14.0\u003cBR/\u003e\n\u003c/BR\u003e\n→ 2025-03-12 06:40   unicode.Decode deprecated change Utf8View \u003cBR/\u003e\n\u003c/BR\u003e\n\u003c/BR\u003e\n**big bug input  change module utils of libtui**\u003cBR/\u003e\nAnyway, it's all fixed now.\u003cBR/\u003e\n\u003c/BR\u003e\nI've been chasing memory leaks too much\nHello, sorry for the bug in the zone entry, I tried to run after the leaks euuhh a big slap.\u003cBR/\u003e\n\nI worked on the dates and that led me to restructure all the libraries for a smoother future.\u003cBR/\u003e\nI retested and only compiled.\u003cBR/\u003e\nLIBTUI: includes everything related to the terminal and its execution.\u003cBR/\u003e\nLIBZND: processing -\u003e Decimal, Zfield, Date-time.\u003cBR/\u003e\nLIBSQL: in preparation now that I've finished DATE-TIME\u003cBR/\u003e\n\nI'm going to work on open date space so that FIELDs are easy to access.\u003cBR/\u003e\n\nthe source generator isn't finished, I'd like to process the GRIDs, that's why I'm on sql....\u003cBR/\u003e\n\u003cBR/\u003e\n\u003cBR/\u003e\n\u003cBR/\u003e\n\u003cBR/\u003e\n\u003cBR/\u003e\nI recommend using the GENSRC program (C/C++) that emulates a clean terminal and allows for debugging.\u003cBR/\u003e\nYou can see the source generation of formsrc and formtest, which has been reworked.\u003cBR/\u003e\n\u003cBR/\u003e\nKeep in mind that the generation is a skeleton; I am trying to reduce the repetitive overhead of programming so we can focus on the requested functionality.\u003cBR/\u003e\nI haven't finished yet; I still need to make changes, for example, the GRID SFLD, which is a grid with data, etc.\u003cBR/\u003e\n\u003cBR/\u003e\n\u003cBR/\u003e\n\n------------------------------------------------------------------\u003cbr /\u003e\n\nNow that the entire designer allows for saving and restoring the code, this has allowed me to test my functions, and especially to take a little tour of the Zig language. I opted for working and writing with maximum use of the Zig language, so I don't use addressing or hex code; everything is in Zig.\u003cbr /\u003e \u003cbr /\u003e\n\nPAUSE\u003cbr /\u003e \u003cbr /\u003e\n\nIn the current state, one could very well use JSON files and encapsulate them in the program, and why not make the forms in the project dynamic... I did this on the AS400.\u003cbr /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fas400jplpc%2Fzig_termcurs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fas400jplpc%2Fzig_termcurs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fas400jplpc%2Fzig_termcurs/lists"}