Menu

Tree [300c10] master /
 History

HTTPS access


File Date Author Commit
 assets 2022-06-08 Michel Clasquin Michel Clasquin [e667a6] added audio demo, but it aqnd its library remai...
 libs 2022-07-11 clasqm clasqm [300c10] added starwars library and demo
 standalone 2022-05-29 Michel Clasquin Michel Clasquin [f2f71f] added bfscript library and demo
 yabide-tiny 2022-05-02 clasqm clasqm [43c5dd] Initial commit
 .gitignore 2022-05-22 Michel Clasquin Michel Clasquin [3e6bbd] added fbsmall library and replaced homegrown li...
 README.md 2022-06-05 clasqm clasqm [4f7577] added pandoc library and demo
 WTFPL 2022-05-02 clasqm clasqm [43c5dd] Initial commit

Read Me

Yabasic libraries 2

A series of libraries for yabasic , the BASIC dialect by Marc Ihm, that give access to a number of common utilities on Linux. Not tested on other UNIX platforms, but it should be possible to adjust them accordingly.

This site contains a rethink of my earlier libraries collection.

Distribution is via source code in the git repository only.

Compared to my earlier libraries, these are organized by functionality rather than by the utility they call (there are a few exceptions). This makes the libraries smaller. In addition, each library should be self-sufficient, in other words, you will be able to load any combination you like without dependencies or clashing subroutine names. If you like to use dialog for one functionality and whiptail for another, then that will be possible.

As much as possible, the parameters to be passed to utilities with similar functionality are kept identical. This makes it easier to do something like (pseudocode follows):

if whiptail exists on the system, do WTDialog ("bla", "blabla")
else if dialog exists on the system, do DlgDialog ("bla", "blabla")
else do the HomebrewDialog ("bla", "blabla")

But it does imply that some parameters will be ignored.

These libraries are under continuous development. Most of the libraries are not yet usable and may receive significant changes (i.e. breakages). You will know that something is ready to use when you see a demo program for it appearing. Once the demo is up, keeping things stable is my problem.

I am more interested in Console/Terminal programming than in GUIs, so that is what my libraries focus on. For example, The OpenEditor library will let yabasic open over 30 (at last count) character-mode text editors (nano, vi, tilde etc.) but no GUI text editors (Geany, Kate etc.). The principle is the same, though, and you should be able to adapt what I've done here for your own purposes.

Development and testing happens mostly on Debian 11, with more testing on Debian 9, since that is what I plan to create AppImages of my yabasic programs on. Additional testing of the X-dependent utilities is done on PCLinuxOS, running XFCE as the desktop environment.

Documentation? Just open the library you want to use in a text editor. Every subroutine will tell you what it does. The demo programs should also show you what is possible.

Licensed according to the WTFPL.

PFAQ (pre-emptive frequently asked questions):

  1. Why do your libraries start with a REM?

    If I start them with //, one of my computers thinks it is a C/C++ file. Computers can be pretty dumb sometimes, right?

  2. BASIC? Why? This is the 21st century.

    You have your hobbies, I have mine.

  3. I found a bug!

    It's a feature! OK, seriously, I work alone, so don't bother with pull requests. You can report bugs and make requests at clasqm @ gmail dot com.

  4. Demos are not running?
    They should run with ./demo-whatever.yab on a Debian 11 system. But if your distro keeps env in a weird place, just try yabasic ./demo-whatever.yab or $(which yabasic) ./demo-whatever.yab.

  5. I have built a global software empire based on your libraries. How can I reward you?

    I dunno, maybe buy me a coffee?