Commit f76bdf55 authored by kollo's avatar kollo

version 1.24

parent d718a2e2
This diff is collapsed.
......@@ -10,17 +10,17 @@
VERSION 1.23
VERSION 1.24
(C) 1997-2015 by Markus Hoffmann
(kollo@users.sourceforge.net)
Name : X11Basic
Version : 1.23 Vendor: Markus Hoffmann
Version : 1.24 Vendor: Markus Hoffmann
Group : Development/Languages License: GPL
Packager : Markus Hoffmann <kollo@users.sourceforge.net>
URL : http://x11-basic.sourceforge.net/
Summary : A Basic Interpreter and compiler with graphics capabilities
Summary : A Basic interpreter and compiler with graphics capabilities
Description :
X11-Basic is a dialect of the BASIC programming language with graphics
......@@ -29,12 +29,7 @@ Description :
computers.
The structure of the language is similar to the ATARI-ST GFA-BASIC.
GFA-Basic programs should run with only few changes.
On UNIX and linux systems, the X11 graphics engine can be used as well as the
SDL library, the framebuffer devices or no graphics at all. The MS WINDOWS
version supports only SDL (or no graphics at all).
This package includes the basic interpreter named xbasic and a set of
different compilers. The interpreter can be used as a shell, and can so run
basic-scripts. You can make excecutable scripts p.ex. *.cgi-Scripts for
......@@ -59,7 +54,7 @@ Description :
You will find the compiler sourcecode and some other sample programs in
/usr/share/doc/packages/X11Basic/examples. A variety of other sample programs
can be found in X11-Basic-examples-1.23.zip, which you can download from the
can be found in X11-Basic-examples-1.24.zip, which you can download from the
homepage (http://x11-basic.sourceforge.net/). Also an up-to-date pdf-version
of the manual can be found there.
......
Release notes for Version 1.23 (July 2014 --Mar 2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- New data type: complex numbers a#
- New data type: arbitrary precision integers a& (experimental)
- LAPACK functions (e.g. SOLVE(), INVERT() etc.) now work in Android version
- New functions LCM() and GCD()
- fixed bugs in compiler (PRINT)
- fixed bug in MID$()
- compiled an ATARI ST (MINT) version of X11-Basic
- Fixed bug in LOAD / Screen rotation
- Again modified MID$
- Crashfix: clear_variable
- Fixed unavail Basedir in Android
- fixed bug in EVAL, HELP, RND(), SGET, GET
- increased speed of assignment in interpreter
- workaround for TTS crash (Android)
Release notes for Version 1.24 (Sept 2015 -- )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Improved USB-Support
; File f"ur Inno-Setup fuer X11-basic
; Innosetup kann mit wine benutzt werden.
;
; TODO. .bas extension registrieren
; Manual vom Startmenu aus aufrufen
; xbasic.exe im consolenfenster starten.
[Setup]
AppName=X11-Basic
AppVerName=X11-Basic V1.24
AppVersion=1.24-24
DefaultDirName={pf}\X11-Basic
; Since no icons will be created in "{group}", we don't need the wizard
; to ask for a Start Menu folder name:
DisableProgramGroupPage=yes
UninstallDisplayIcon={app}\x11basic.ico
OutputDir=Inno-Output
AppCopyright=Copyright (C) 1991-2015 Markus Hoffmann
LicenseFile=COPYING
InfoBeforeFile=RELEASE_NOTES
InfoAfterFile=README
AppPublisherURL=http://x11-basic.sourceforge.net
[Files]
Source: "xbasic.exe"; DestDir: "{app}"
Source: "xbc.exe"; DestDir: "{app}"
Source: "xb2c.exe"; DestDir: "{app}"
Source: "xbvm.exe"; DestDir: "{app}"
Source: "xbbc.exe"; DestDir: "{app}"
Source: "Windows.extension/lib/SDL.dll"; DestDir: "{sys}"; Flags: sharedfile regserver 32bit
Source: "Windows-Installer/demo.bas"; DestDir: "{app}/examples"
Source: "Windows-Installer/readme.txt"; DestDir: "{app}"; Flags: isreadme
Source: "Windows.extension/lib/libusb0.dll"; DestDir: "{sys}"; Flags: sharedfile regserver 32bit
Source: "Windows.extension/lib/README-libusb.txt"; DestDir: "{app}/contrib"; Flags: isreadme
Source: "Windows-Installer/x11basic.ico"; DestDir: "{app}"
Source: "Windows-Installer/X11-Basic.pdf"; DestDir: "{app}/doc"
Source: "Windows-Installer/bas.ico"; DestDir: "{app}"
Source: "Windows.extension/lib/README-SDL.txt"; DestDir: "{app}/contrib" ; Flags: isreadme
Source: "Windows.extension/lib/README-GMP.txt"; DestDir: "{app}/contrib" ; Flags: isreadme
Source: "Windows.extension/lib/README-LAPACK.txt"; DestDir: "{app}/contrib" ; Flags: isreadme
[Icons]
Name: "{commonprograms}\X11-Basic"; Filename: "{app}\xbasic.exe" ; IconFilename: "{app}\x11basic.ico"
Name: "{commonprograms}\X11-Basic compiler"; Filename: "{app}\xbc.exe" ; IconFilename: "{app}\x11basic.ico"
Name: "{commondesktop}\X11-Basic"; Filename: "{app}\xbasic.exe" ; IconFilename: "{app}\x11basic.ico"
[Run]
; Filename: "{app}\xbc.exe"; Description: "Launch X11-Basic compiler";
......@@ -271,20 +271,23 @@ static void LWSWAP(short *adr) {
double ltext(int, int, double, double, double , int, char *);
#ifndef USE_GEM
short form_alert(short dbut,char *n) {
return(form_alert2(dbut,n,NULL));
}
short form_alert(short dbut,char *n) {return(form_alert2(dbut,n,strlen(n),NULL));}
#endif
int form_alert2(int dbut,char *n, char *tval) {
/* Diese Funktion kann ja auch Input-Felder annehmen. Es können
0-bytes in n sein.*/
int form_alert2(int dbut,char *n,int size, char *tval) {
char *bzeilen[30],*bbuttons[30],*buffer[30];
int bzeilenlen[30],bbuttonslen[30];
int anzzeilen=0,anzbuttons=0,anztedinfo=0,anzbuffer=0;
int symbol=0,sbut=0;
char *pos=n;
char **ein=bzeilen;
int i=0,j=strlen(n),k=0,l=0;
int *len=bzeilenlen;
int i=0,j=size,k=0,l=0;
TEDINFO tedinfo[32];
char tmplt[32*80];
char valid[32*80];
char tmplt[32*80],valid[32*80];
int tmpltptr=0,validptr=0;
OBJECT objects[64]={{-1,1,1,G_BOX, 0, OUTLINED, { 0x00021100}, 0,0,100,100}};
int objccount=1;
......@@ -292,29 +295,38 @@ int form_alert2(int dbut,char *n, char *tval) {
#ifdef DEBUG
printf("**form_alert:\n");
#endif
memset(tmplt,'_',32*80);
memset(valid,'X',32*80);
memset(tmplt,'_',sizeof(tmplt));
memset(valid,'X',sizeof(valid));
while(i<j) {
if(n[i]=='[') {
pos=&n[i+1];
k++;l=0;
} else if(n[i]==']') {
n[i]=0;
if(k>0) ein[l++]=pos;
if(k>0) {
ein[l]=pos;
len[l]=&n[i]-pos;
l++;
}
if(k==1) {
symbol=atoi(pos);
ein=bzeilen;
len=bzeilenlen;
} else if(k==2) {
ein=bbuttons;anzzeilen=l;
len=bbuttonslen;
} else if(k==3) anzbuttons=l;
} else if(n[i]=='|') {
ein[l++]=pos;
ein[l]=pos;
len[l]=&n[i]-pos;
n[i]=0;
l++;
pos=n+i+1;
};
i++;
}
if(anzbuttons) {
/* Box-Abmessungen bestimmen */
int textx;
......@@ -331,7 +343,7 @@ int form_alert2(int dbut,char *n, char *tval) {
objects[0].ob_height=max(objects[0].ob_height+2*max(window[usewindow].chh,16),max(window[usewindow].chh,16)*2+(anzzeilen+2)*window[usewindow].chh);
for(i=0;i<anzzeilen;i++) maxc=max(maxc,strlen(bzeilen[i]));
for(i=0;i<anzzeilen;i++) maxc=max(maxc,bzeilenlen[i]); /*Auch textfelder mit längeren default berücksichtigen*/
objects[0].ob_width+=window[usewindow].chw*maxc;
/* Buttons */
......@@ -365,7 +377,7 @@ int form_alert2(int dbut,char *n, char *tval) {
for(i=0;i<anzzeilen;i++) {
objects[objccount].ob_x=textx+window[usewindow].chh;
objects[objccount].ob_y=(1+i)*window[usewindow].chh;
objects[objccount].ob_width=window[usewindow].chw*strlen(bzeilen[i]);
objects[objccount].ob_width=window[usewindow].chw*bzeilenlen[i];
objects[objccount].ob_height=window[usewindow].chh;
objects[objccount].ob_spec.free_string=bzeilen[i];
objects[objccount].ob_head=-1;
......@@ -380,13 +392,13 @@ int form_alert2(int dbut,char *n, char *tval) {
for(j=0;j<strlen(objects[objccount-1].ob_spec.free_string);j++) {
if((objects[objccount-1].ob_spec.free_string)[j]==27) {
(objects[objccount-1].ob_spec.free_string)[j]=0;
// printf("Textfeld gefunden. OB=%d vorne=<%s>\n",objccount,objects[objccount-1].ob_spec);
// printf("Textfeld gefunden. OB=%d vorne=<%s>\n",objccount,objects[objccount-1].ob_spec);
objects[objccount].ob_x=textx+window[usewindow].chh+window[usewindow].chw*j+window[usewindow].chw;
objects[objccount].ob_y=(1+i)*window[usewindow].chh;
objects[objccount-1].ob_width=window[usewindow].chw*(strlen(objects[objccount-1].ob_spec.free_string));
objects[objccount].ob_width=window[usewindow].chw*(strlen(bzeilen[i]+j+1));
// printf("default=<%s>\n",bzeilen[i]+j+1);
objects[objccount].ob_width=window[usewindow].chw*(bzeilenlen[i]-j-1);
// printf("default=<%s> len=%d\n",bzeilen[i]+j+1,bzeilenlen[i]-j-1);
objects[objccount].ob_height=window[usewindow].chh;
objects[objccount].ob_spec.tedinfo=&tedinfo[anztedinfo];
objects[objccount].ob_head=-1;
......@@ -396,21 +408,24 @@ int form_alert2(int dbut,char *n, char *tval) {
objects[objccount].ob_flags=EDITABLE;
objects[objccount].ob_state=NORMAL;
tedinfo[anztedinfo].te_ptext=(char *)(bzeilen[i]+j+1);
buffer[anzbuffer]=malloc(strlen((char *)tedinfo[anztedinfo].te_ptext)+1);
buffer[anzbuffer]=malloc(bzeilenlen[i]-j-1+1);
tedinfo[anztedinfo].te_ptmplt=(char *)&tmplt[tmpltptr];
tmpltptr+=strlen(bzeilen[i]+j+1)+1;
tmpltptr+=bzeilenlen[i]-j-1+1;
tmplt[tmpltptr-1]=0;
tedinfo[anztedinfo].te_pvalid=(char *)&valid[validptr];
validptr+=strlen(bzeilen[i]+j+1)+1;
validptr+=bzeilenlen[i]-j-1+1;
valid[validptr-1]=0;
tedinfo[anztedinfo].te_font=FONT_IBM;
tedinfo[anztedinfo].te_just=TE_LEFT;
tedinfo[anztedinfo].te_fontid=strlen(bzeilen[i]+j+1);
tedinfo[anztedinfo].te_fontid=strlen(bzeilen[i]+j+1); /*Cursor-Position*/
tedinfo[anztedinfo].te_fontsize=0;
tedinfo[anztedinfo].te_color=0x1100;
tedinfo[anztedinfo].te_thickness=1;
tedinfo[anztedinfo].te_txtlen=strlen((char *)tedinfo[anztedinfo].te_ptext);
tedinfo[anztedinfo].te_tmplen=strlen((char *)tedinfo[anztedinfo].te_ptext);
tedinfo[anztedinfo].te_txtlen=bzeilenlen[i]-j-1;
tedinfo[anztedinfo].te_tmplen=bzeilenlen[i]-j-1;
// printf("ptext=<%s>\n",tedinfo[anztedinfo].te_ptext);
// printf("tmplt=<%s>\n",tedinfo[anztedinfo].te_ptmplt);
// printf("valid=<%s>\n",tedinfo[anztedinfo].te_pvalid);
anztedinfo++;
objccount++;
/* printf("Objcount: %d\n",objccount);*/
......@@ -452,10 +467,8 @@ int form_alert2(int dbut,char *n, char *tval) {
form_dial(2,0,0,0,0,x,y,w,h);
if(tval!=NULL) { /* Textfelder zusammensuchen */
tval[0]=0;
for(i=0;i<objccount;i++) {
if(objects[i].ob_flags & EDITABLE) {
strcat(tval,(char *)(objects[i].ob_spec.tedinfo)->te_ptext);
tval[strlen(tval)+1]=0;
......@@ -464,9 +477,7 @@ int form_alert2(int dbut,char *n, char *tval) {
}
// printf("tval=<%s>\n",tval);
}
while(anzbuffer) {
free(buffer[--anzbuffer]);
}
while(anzbuffer) free(buffer[--anzbuffer]);
}
return(sbut);
}
......@@ -725,18 +736,17 @@ if (drawbg) {
ted=tree[idx].ob_spec.tedinfo;
load_GEMFONT(ted->te_font);
text=(char *)malloc(strlen(ted->te_ptext)+1+strlen(ted->te_ptmplt));
text=(char *)malloc(ted->te_txtlen+ted->te_tmplen+1);
ob_format(ted->te_just,ted->te_ptext,ted->te_ptmplt,text);
/* j1 ist die cursorposition relativ zum ptext feld,
j2 ein offset der darstellung, die maximal darstellbare Laenge ergibt
/* ted->te_fontid ist die cursorposition relativ zum ptext feld,
ted->te_fontsize ein offset der darstellung, die maximal darstellbare Laenge ergibt
sich aus obw, Maximale laenge des eingabestrings aus der laenge des tmpl
*/
//printf("j1=%d, j2=%d\n",ted->te_fontid,ted->te_fontsize);
flen=strlen(text);
// printf("Zusammengesetzter text: <%s> len=%d ",text,flen);
// printf("cursorpos=%d, offset=%d\n",ted->te_fontid,ted->te_fontsize);
x=fontwidth(ted->te_font); /*x temporarily used*/
if(flen*x>obw) {
if((flen-ted->te_fontsize)*x>obw) flen=obw/x;
......@@ -760,6 +770,7 @@ if (drawbg) {
SetForeground(gem_colors[textcolor]);
}
DrawString(x,y,text+ted->te_fontsize,flen);
// printf("DrawString: <%s> l=%d\n",text+ted->te_fontsize,flen);
SetForeground(gem_colors[RED]);
if(strlen(text)-ted->te_fontsize>obw)
DrawString(obx+obw,oby+obh,">",1);
......@@ -820,11 +831,13 @@ if (drawbg) {
}
}
short objc_draw(OBJECT *tree,short start, short stop,short rootx,short rooty,short w,short h) {
short objc_draw(OBJECT *tree,short start, short stop,short rootx,short rooty,short clipw,short cliph) {
int idx=start;
#if DEBUG
printf("**objc_draw: von %d bis %d\n",start,stop);
#endif
#endif
// TODO:
// if(clipw<=0 || cliph<=0) return(0);
#ifdef FRAMEBUFFER
FB_hide_mouse();
#endif
......@@ -837,7 +850,7 @@ short objc_draw(OBJECT *tree,short start, short stop,short rootx,short rooty,sho
}
if(tree[idx].ob_head!=-1) {
if(!(tree[idx].ob_flags & HIDETREE)) {
objc_draw(tree,tree[idx].ob_head,tree[idx].ob_tail,tree[idx].ob_x+rootx,tree[idx].ob_y+rooty,w,h);
objc_draw(tree,tree[idx].ob_head,tree[idx].ob_tail,tree[idx].ob_x+rootx,tree[idx].ob_y+rooty,clipw,cliph);
}
}
if(idx==stop) {
......@@ -856,7 +869,7 @@ short objc_draw(OBJECT *tree,short start, short stop,short rootx,short rooty,sho
return(1);
}
if(tree[idx].ob_head!=-1) {
if(!(tree[idx].ob_flags & HIDETREE)) objc_draw(tree,tree[idx].ob_head,tree[idx].ob_tail,tree[idx].ob_x+rootx,tree[idx].ob_y+rooty,w,h);
if(!(tree[idx].ob_flags & HIDETREE)) objc_draw(tree,tree[idx].ob_head,tree[idx].ob_tail,tree[idx].ob_x+rootx,tree[idx].ob_y+rooty,clipw,cliph);
}
if(idx==stop) {
#ifdef FRAMEBUFFER
......@@ -1038,11 +1051,12 @@ void memdump (const unsigned char *adr,int l);
short rsrc_load(const char *filename) {
int i;
if(exist(filename)) {
FILE *dptr=fopen(filename,"r");
FILE *dptr=fopen(filename,"rb");
if(dptr==NULL) return(-1);
int len=lof(dptr);
rsrc=malloc(len);
if(fread(rsrc,1,len,dptr)==len) {
int a;
if((a=fread(rsrc,1,len,dptr))==len) {
WSWAP((char *)((long)rsrc));
if(rsrc->rsh_vrsn==0 || rsrc->rsh_vrsn==1) {
// if(rsrc->rsh_vrsn==0) {
......@@ -1081,11 +1095,14 @@ memdump((unsigned char *)rsrc,len-rsrc->rsh_rssize);
printf("Unsupported RSC version %d.\n",rsrc->rsh_vrsn);
memdump((unsigned char *)rsrc,64);
}
} else {
printf("fread failed. %d %d \n",a,len);
}
fclose(dptr);
free(rsrc);
rsrc=NULL;
}
} else xberror(-33,filename); /* File not found*/
return(-1);
}
......
......@@ -383,5 +383,5 @@ void draw_edcursor(OBJECT *tree,int ndx);
int rootob(OBJECT *tree,int onr);
void relobxy(OBJECT *tree,int ndx,int *x, int *y);
#endif
int form_alert2(int dbut,char *n, char *tval);
int form_alert2(int dbut,char *n,int size, char *tval);
#endif
......@@ -15,6 +15,7 @@
#include "x11basic.h"
#include "variablen.h"
#include "xbasic.h"
#include "type.h"
#include "parser.h"
#include "parameter.h"
#include "array.h"
......
......@@ -15,6 +15,7 @@
#include "variablen.h"
#include "xbasic.h"
#include "type.h"
#include "wort_sep.h"
#include "array.h"
#include "parser.h"
......
This diff is collapsed.
......@@ -60,10 +60,35 @@ typedef struct { /**** Colormap entry structure ****/
} RGBQUAD;
#endif
typedef struct {
unsigned int w;
unsigned int h;
unsigned int d; /*1,8,16,24,32*/
void *data;
} MYBITMAP;
/* Standard Bitmap in RGBA format */
typedef struct {
unsigned int w;
unsigned int h;
unsigned char *image; /*RGBA Werte*/
} STANDARDBITMAP;
int bmp2bitmap(const unsigned char *data,unsigned char *fbp,int x, unsigned int bw,unsigned int bh,unsigned int depth, unsigned char *mask);
#ifdef USE_X11
XImage *xwdtoximage(unsigned char *data,Visual *visual, int depth, XImage **XMask, int tres, double scale);
XImage *stdbmtoximage(STANDARDBITMAP bmp,Visual *visual, int depth, XImage **XMask);
unsigned char *imagetoxwd(XImage *image,Visual *visual,XColor *pixc, int *len);
unsigned char *imagetobmp(XImage *image,Visual *visual,XColor *pixc, int *len);
STANDARDBITMAP imagetostdbm(XImage *image,Visual *visual,XColor *pixc,int usealpha, int bcolor);
#endif
void bitmap_scale(const unsigned char *oadr,unsigned int depth,unsigned int ow,unsigned int oh,unsigned char *adr,unsigned int w,unsigned int h);
STRING pngtobmp(unsigned char *data,size_t pngsize);
STRING bmptopng(unsigned char *data);
unsigned char *stdbmtobmp(STANDARDBITMAP bmp, int *len);
STANDARDBITMAP bmp2stdbm(const unsigned char *data);
......@@ -19,6 +19,7 @@
#include "variablen.h"
#include "array.h"
#include "xbasic.h"
#include "type.h"
#include "parser.h"
#include "parameter.h"
#include "number.h"
......@@ -819,7 +820,7 @@ int bc_parser(const char *funktion){ /* Rekursiver Parser */
e=wort_sep(w2,',',TRUE,w1,w2);
ii++;
}
// printf("name=%s %s\n",pfuncs[i].name,pos);
// printf("name=%s %s\n",pfuncs[i].name,pos);
plist_to_stack(par,(short *)pfuncs[i].pliste,anz,pfuncs[i].pmin,pfuncs[i].pmax);
for(ii=0;ii<anz;ii++) free(par[ii].pointer);
free(par);
......@@ -1723,7 +1724,7 @@ Hier ist also noch ziemlicher Bahnhof ! */
PARAMETER *p=pcode[i].ppointer;
char *n;
int count=0;
#ifdef ATARI
char code[200];
#else
......@@ -1740,17 +1741,22 @@ Hier ist also noch ziemlicher Bahnhof ! */
// else
if(TL!=PL_INT) {BCADD(BC_X2I);TR(PL_INT);}
BCADD(BC_I2FILE);TR(PL_FILENR);
continue;
} else {BCADD(BC_PUSHLEER);TP(PL_LEER); bc_print_arg(n,code);count++;}
} else {
if(count) strcat(code,"+CHR$(9)");
bc_print_arg(n,code); /* Ergebnis ist dann ein String-Parameter auf dem Stack.*/
count++;
}
if(n[strlen(n)-1]!=';' && n[strlen(n)-1]!='\'') strcat(code,"+CHR$(10)");;
} else plist_to_stack(p+j,(short *)comms[find_comm("PRINT")].pliste,1,0,-1);
} else {BCADD(BC_PUSHLEER);TP(PL_LEER); }
if(*n=='#') continue;
}
bc_print_arg(n,code); /* Ergebnis ist dann ein String-Parameter auf dem Stack.*/
if(n[strlen(n)-1]!=';' && n[strlen(n)-1]!='\'' && j==pcode[i].panzahl-1) strcat(code,"+CHR$(10)");
else if(n[strlen(n)-1]!=';' && n[strlen(n)-1]!='\'' && j<pcode[i].panzahl-1) strcat(code,"+CHR$(9)");
// printf("n=<%s> --> <%s>\n",n,code);
} else if(p[j].typ==PL_LEER) {
; /* nixtun !*/
} else {
/*Hier stimmt was nicht, denn das ist so noch nicht implementiert.*/
printf("WARNING: noeval\n");
plist_to_stack(p+j,(short *)comms[find_comm("PRINT")].pliste,1,0,-1);
}
}
// printf("Codezeile: <%s>\n",code);
// printf("Codezeile: <%s>\n",code);
if(TL!=PL_LEER && TL!=PL_FILENR) printf("WARNING: something is wrong at line %d! %x\n",compile_zeile,TL);
bc_parser(code);
if(TL!=PL_STRING) printf("WARNING: something is wrong at line %d! %x\n",compile_zeile,TL);
......
......@@ -8,7 +8,7 @@
#define BC_STACKLEN 256
#define BC_VERSION 0x1235 /* Version 1.23 release 5*/
#define BC_VERSION 0x1238 /* Version 1.23 release 8*/
typedef struct {
unsigned char BRAs; /* DC_BRAs */
......
This diff is collapsed.
#! /bin/sh
# From configure.in Revision: 0.12 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for X11-Basic 1.23.
# Generated by GNU Autoconf 2.69 for X11-Basic 1.24.
#
# Report bugs to <kollo@users.sourceforge.net>.
#
......@@ -581,8 +581,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='X11-Basic'
PACKAGE_TARNAME='x11-basic'
PACKAGE_VERSION='1.23'
PACKAGE_STRING='X11-Basic 1.23'
PACKAGE_VERSION='1.24'
PACKAGE_STRING='X11-Basic 1.24'
PACKAGE_BUGREPORT='kollo@users.sourceforge.net'
PACKAGE_URL=''
......@@ -1243,7 +1243,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures X11-Basic 1.23 to adapt to many kinds of systems.
\`configure' configures X11-Basic 1.24 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
......@@ -1308,7 +1308,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of X11-Basic 1.23:";;
short | recursive ) echo "Configuration of X11-Basic 1.24:";;
esac
cat <<\_ACEOF
......@@ -1394,7 +1394,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
X11-Basic configure 1.23
X11-Basic configure 1.24
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
......@@ -1874,7 +1874,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by X11-Basic $as_me 1.23, which was
It was created by X11-Basic $as_me 1.24, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
......@@ -5278,9 +5278,56 @@ fi
# `-lusb':
#AC_CHECK_LIB([usb], [usb_open], [
#libs="$libs -lusb"
#AC_DEFINE(HAVE_USB,1,[usb_open in lusb])
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for usb_open in -lusb" >&5
$as_echo_n "checking for usb_open in -lusb... " >&6; }
if ${ac_cv_lib_usb_usb_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lusb $libs $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char usb_open ();
int
main ()
{
return usb_open ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_usb_usb_open=yes
else
ac_cv_lib_usb_usb_open=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_usb_usb_open" >&5
$as_echo "$ac_cv_lib_usb_usb_open" >&6; }
if test "x$ac_cv_lib_usb_usb_open" = xyes; then :
libs="$libs -lusb"
$as_echo "#define HAVE_USB 1" >>confdefs.h
fi
# `-lusb-1.0':
#AC_CHECK_LIB([usb-1.0], [libusb_control_transfer], [
#libs="$libs -lusb-1.0"
#AC_DEFINE(HAVE_LIBUSB,1,[libusb_control_transfer in lusb-1.0])
#],,[$libs])
# `-lgcrypt':
......@@ -5588,7 +5635,15 @@ else
fi
;;
i*86-*-linux)
echo 'Oh no, a 80x86-based Linux box... My condolences! :-)'
echo 'Oh, a 80x86-based Linux box... Very nice! :-)'
regs="-fomit-frame-pointer"
;;
i*86-*-linux-*)
echo 'Oh, a 80x86-based Linux box... Very nice! :-)'
regs="-fomit-frame-pointer"
;;
armv*-*-linux-*)
echo 'Oh no, an arm-based Linux box... Maybe the Raspberry PI. My condolences! :-)'
regs="-fomit-frame-pointer"
;;
i*86-*bsd*)
......@@ -7154,7 +7209,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by X11-Basic $as_me 1.23, which was
This file was extended by X11-Basic $as_me 1.24, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
......@@ -7216,7 +7271,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
X11-Basic config.status 1.23
X11-Basic config.status 1.24
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
......
# configure.in file for X11-Basic (c) Markus Hoffmann
# used by autoconf
#
AC_INIT([X11-Basic], [1.23], [kollo@users.sourceforge.net])
AC_INIT([X11-Basic], [1.24], [kollo@users.sourceforge.net])
version=$PACKAGE_VERSION
vdate=`date`
AC_REVISION($Revision: 0.12 $)
......@@ -178,9 +178,15 @@ AC_DEFINE(HAVE_PRIMORIAL_UI,1,[mpz_primorial_ui in gmp])
],,[$libs])
# `-lusb':
#AC_CHECK_LIB([usb], [usb_open], [
#libs="$libs -lusb"
#AC_DEFINE(HAVE_USB,1,[usb_open in lusb])
AC_CHECK_LIB([usb], [usb_open], [
libs="$libs -lusb"
AC_DEFINE(HAVE_USB,1,[usb_open in lusb])
],,[$libs])
# `-lusb-1.0':
#AC_CHECK_LIB([usb-1.0], [libusb_control_transfer], [
#libs="$libs -lusb-1.0"
#AC_DEFINE(HAVE_LIBUSB,1,[libusb_control_transfer in lusb-1.0])
#],,[$libs])
# `-lgcrypt':
......@@ -252,7 +258,15 @@ else
fi
;;
i*86-*-linux)
echo 'Oh no, a 80x86-based Linux box... My condolences! :-)'
echo 'Oh, a 80x86-based Linux box... Very nice! :-)'
regs="-fomit-frame-pointer"
;;
i*86-*-linux-*)
echo 'Oh, a 80x86-based Linux box... Very nice! :-)'
regs="-fomit-frame-pointer"
;;
armv*-*-linux-*)
echo 'Oh no, an arm-based Linux box... Maybe the Raspberry PI. My condolences! :-)'
regs="-fomit-frame-pointer"
;;
i*86-*bsd*)
......
......@@ -34,6 +34,8 @@ in 2014:
in 2015:
* Guillaume Tello, Wanderer, and John Sheales (beta testing and bug fixing)
X11-Basic is build on top of many free softwares, and could not exist without
them.
......@@ -50,6 +52,12 @@ numerical linear algebra.
For details, see: http://www.netlib.org/lapack/
X11-Basic uses the lodepng code for the PNG bitmap graphics support.
Copyright (c) 2005-2013 Lode Vandevenne
So I would like to thank every people involved in the following projects:
Linux
......
......@@ -319,4 +319,39 @@ Release notes for Version 1.22 (Dec 2013-June 2014)
- bugfix in compiler, improved error messages
- fixed bug in DIM, VAL?(), PLIST
Release notes for Version 1.23 (July 2014 -- August 2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- New data type: complex numbers a#
- New data type: arbitrary precision integers a& (experimental)
- LAPACK functions (e.g. SOLVE(), INVERT() etc.) now work in Android version