Commit graph

1098 commits

Author SHA1 Message Date
gambas
f05e6bc0ca Fix the TerminalView control again, and the way processes are run in pseudo-terminals.
[DEVELOPMENT ENVIRONMENT]
* BUG: Terminal: Replace "\n" by "\r\n" when sending text to the output terminal.

[INTERPRETER]
* NEW: When a process is run with a pseudo-terminal, don't set the ECHO flag, and clear the ONLCR flag.
  That way, the data printed on the standard output is the same as when the process is not run in a pseudo-terminal.

[GB.FORM.TERMINAL]
* BUG: TerminalView: Output filter now works correctly when it receives incomplete data.
* OPT: TerminalViews: Resize the terminal less often when the terminal view is resized.
* NEW: TerminalView: When a process is run inside the terminal, set the ECHO and ONLCR flags automatically.
2017-08-22 13:20:26 +02:00
gambas
ba37aa6da7 Fix pseudo-terminal initialization when running an external process with Exec or Shell.
[INTERPRETER]
* BUG: Fix pseudo-terminal initialization when running an external process with Exec or Shell.

[COMPILER]
* BUG: Fix a typo in 'gbc_trans.h' header.
2017-08-21 13:57:40 +02:00
gambas
91de2cccd5 Flush the process outputs when it stops immediately after having been launched.
[INTERPRETER]
* BUG: Flush the process outputs when it stops immediately after having been launched.
2017-08-21 01:45:59 +02:00
gambas
38a60179aa Fix Process.Wait() (remove debugging messages). 2017-08-18 13:19:10 +02:00
gambas
e1a5412f4f Fix Process.Wait()
[INTERPRETER]
* BUG: Process.Wait() does not freeze anymore when the child process actually ends before checking the end of the process just after having run it.
2017-08-18 13:15:03 +02:00
Tobias Boege
48c951987b [CONFIGURATION]
* NEW: Add (short) commit hash and branch name to gb{a,c,i,x}3 --version when compiled from git
2017-08-15 11:58:48 +02:00
Benoît Minisini
a3410b006f [INTERPRETER]
* NEW: Collection.First is a new property that returns the key of the first element of the collection, or NULL if the collection is void.
* NEW: Collection.Last is a new property that returns the key of the last element of the collection, or NULL if the collection is void.


git-svn-id: svn://localhost/gambas/trunk@8174 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-08-08 12:33:47 +00:00
Benoît Minisini
986e7eeb85 [INTERPRETER]
* NEW: Add an API that allows to create an array class before instanciating it.

[GB.DBUS]
* BUG: When marshalling from DBus to Gambas, create the array classes before instanciating them.


git-svn-id: svn://localhost/gambas/trunk@8173 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-08-07 13:51:33 +00:00
Benoît Minisini
d42a49b57d [CONFIGURATION]
* NEW: Switch version to 3.10.90.

[GB.DB]
* NEW: Connection.TimeZone is new property that will allow to define the default timezone of dates stored in the database we are connected to. Not implemented yet.


git-svn-id: svn://localhost/gambas/trunk@8168 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-07-24 18:53:33 +00:00
Benoît Minisini
5189530aaf [INTERPRETER]
* BUG: Don't raise events just after a process has been started and has just been terminated. Postpone them.


git-svn-id: svn://localhost/gambas/trunk@8142 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-06-09 23:00:45 +00:00
Benoît Minisini
cbfcb9fb00 [INTERPRETER]
* BUG: Check if linking with 'librt' is needed to get monotonic clock.


git-svn-id: svn://localhost/gambas/trunk@8139 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-05-26 12:26:39 +00:00
Benoît Minisini
cfacf387ec [CONFIGURATION]
* NEW: Add a autoconf check for monotonic clock.

[INTERPRETER]
* BUG: Use a monotonic clock (if possible) to implement the WAIT instruction.


git-svn-id: svn://localhost/gambas/trunk@8138 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-05-26 00:20:40 +00:00
Benoît Minisini
c20cbb7972 [COMPILER]
* NEW: New instruction MOVE ... DOWNTO ... that renames a file and erase the destination atomically.

[INTERPRETER]
* NEW: New instruction MOVE ... DOWNTO ... that renames a file and erase the destination atomically.
* BUG: The signal handler now loops until the signal pipe is void.


git-svn-id: svn://localhost/gambas/trunk@8129 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-04-27 13:18:35 +00:00
Benoît Minisini
1184d41881 [INTERPRETER]
* BUG: Fix a possible bad serialization of arrays.
* BUG: Don't crash during the unserialisation of an array whose datatype has been incorrectly serialized. Raise an error instead.


git-svn-id: svn://localhost/gambas/trunk@8110 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-03-18 12:14:01 +00:00
Benoît Minisini
e68cad85c4 [INTERPRETER]
* NEW: Steam.Watch() is a new method that allows to watch/unwatch a stream for reading and/or writing after it has been opened.


git-svn-id: svn://localhost/gambas/trunk@8104 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-25 23:10:45 +00:00
Benoît Minisini
82eddfd5c9 [CONFIGURATION]
* NEW: Remove all 'depcomp' files. Apparently they are not used anymore by autoconf.

[INTERPRETER]
* BUG: Fix some gcc 6 warnings.

[GB.DEBUG]
* BUG: Fix some gcc 6 warnings.

[GB.GTK]
* BUG: Fix some gcc 6 warnings.
* BUG: Fix a ';' mistake in a focus management test.

[GB.GTK3]
* BUG: Fix some gcc 6 warnings.
* BUG: Fix a ';' mistake in a focus management test.

[GB.IMAGE]
* BUG: Fix some gcc 6 warnings.


git-svn-id: svn://localhost/gambas/trunk@8101 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-18 17:24:01 +00:00
Benoît Minisini
661accb890 [INTERPRETER]
* NEW: The GB.SystemHasForked() API now resets the pseudo-random number generator, and the signal handler management pipe.


git-svn-id: svn://localhost/gambas/trunk@8089 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-11 01:00:44 +00:00
Benoît Minisini
5e49bfbd90 [GB.DB.SQLITE2]
* BUG: Make component compile with gcc 6.

[INTERPRETER]
* BUG: Include <cmath> instead of <math.h> for components written in C++, so that they compile with gcc 6.

[GB.GTK]
* BUG: Make component compile with gcc 6.

[GB.GTK3]
* BUG: Make component compile with gcc 6.

[GB.QT4]
* BUG: Make component compile with gcc 6.

[GB.QT5]
* BUG: Make component compile with gcc 6.


git-svn-id: svn://localhost/gambas/trunk@8088 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-02-07 00:08:22 +00:00
Benoît Minisini
b225eba20f [CONFIGURATION]
* NEW: Update copyright year in all source files.


git-svn-id: svn://localhost/gambas/trunk@8056 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-13 03:29:42 +00:00
Benoît Minisini
f0f6dc3261 [INTERPRETER]
* BUG: Automatically restart mkfifo() and open() system calls when executing the PIPE instruction.


git-svn-id: svn://localhost/gambas/trunk@8053 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-13 03:22:35 +00:00
Benoît Minisini
6950a075f0 [INTERPRETER]
* BUG: Tasks do not inherit signal handler pipe anymore, they recreate it instead. Otherwise you have interferences with the parent process of the task, and some signals are lost.
* BUG: Buffered streams now take the internal stream flag "available_now" into account. No idea why that was disabled.
* BUG: Standard streams now set the internal stream flag "available_now" if they are not connected to a terminal. Which may not be necessarily accurate, so it is a temporary change.


git-svn-id: svn://localhost/gambas/trunk@8052 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-11 16:57:44 +00:00
Benoît Minisini
d5f1ac948c [DEVELOPMENT ENVIRONMENT]
* NEW: Update french translation.
* NEW: Support for the new gb.term component.

[INTERPRETER]
* NEW: Add an API that returns the file descriptor associated with a specific stream.

[GB.TERM]
* NEW: New component for terminal management with an API very close to the one provided by the operating system.


git-svn-id: svn://localhost/gambas/trunk@8043 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2017-01-07 00:58:20 +00:00
Benoît Minisini
c4d22f9d24 [INTERPRETER]
* BUG: Forbid continuing and stay in debugger when an unhandled error is raised. This prevent crashes when an error occurs during variable initialization.


git-svn-id: svn://localhost/gambas/trunk@8031 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-12-31 12:02:58 +00:00
Benoît Minisini
4e887b93b3 [INTERPRETER]
* BUG: Do not crash anymore when converting a pointer to an anonymous object. Raise an error instead.


git-svn-id: svn://localhost/gambas/trunk@8030 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-12-31 12:01:12 +00:00
Benoît Minisini
f2717c4ae8 [INTERPRETER]
* BUG: Remove debugging messages.


git-svn-id: svn://localhost/gambas/trunk@7998 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-27 02:44:07 +00:00
Benoît Minisini
7989d44979 [INTERPRETER]
* BUG: Close watched process input & outputs as soon as it is killed. Otherwise, running two processes using virtual terminals successively may fail.


git-svn-id: svn://localhost/gambas/trunk@7997 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-27 02:43:15 +00:00
Benoît Minisini
4aa7d6a268 [INTERPRETER]
* BUG: Debugger does not crash anymore when displaying a static collection-like object.


git-svn-id: svn://localhost/gambas/trunk@7995 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-24 23:58:11 +00:00
Benoît Minisini
1cf354061c [INTERPRETER]
* BUG: Make CStr() and CDate() mutually coherent, by internally converting to UTC dates only.


git-svn-id: svn://localhost/gambas/trunk@7983 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-11-18 14:50:40 +00:00
Benoît Minisini
5d34538e33 [INTERPRETER]
* BUG: Exec with a null program name does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@7939 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-10-28 10:12:09 +00:00
Benoît Minisini
97b8bc2056 [INTERPRETER]
* BUG: The translation file of the project is now always correctly loaded. That was a very old bug.


git-svn-id: svn://localhost/gambas/trunk@7919 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-10-01 22:32:42 +00:00
Benoît Minisini
4d50dead00 [INTERPRETER]
* BUG: Correctly call static event handlers when an event is raised.


git-svn-id: svn://localhost/gambas/trunk@7884 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-09-01 22:10:26 +00:00
Benoît Minisini
0b222b1a99 [INTERPRETER]
* BUG: Fix detection of errors occuring inside interpreter API.


git-svn-id: svn://localhost/gambas/trunk@7879 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-30 22:26:15 +00:00
Benoît Minisini
531e7c3e90 [GB.FORM]
* BUG: MenuButton: Take foreground color into account correctly.
* BUG: MenuButton: Clip text so that arrow is always clearly visible.
* BUG: MenuButton: Take the Design property into account correctly.


git-svn-id: svn://localhost/gambas/trunk@7864 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-26 00:21:27 +00:00
Benoît Minisini
e71801407c [INTERPRETER]
* NEW: Process.CloseInput() is a new method that explicitly closes the process input, as if you send a CTRL+D from the shell. This implements the old process stream closing behaviour that was removed in revision #7622.


git-svn-id: svn://localhost/gambas/trunk@7833 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-08-10 18:37:25 +00:00
Benoît Minisini
2a3ecf982d [DEVELOPMENT ENVIRONMENT]
* NEW: Project property dialog: New project arguments interface.
* NEW: Debugger: The project arguments is now selectable with a popup menu.
* BUG: Fix position history behaviour.

[INTERPRETER]
* NEW: Object.Type(), Object.Class() and Object.Is() now work with invalid objects.

[GB.FORM]
* NEW: Completion: Support for TextArea editor.
* NEW: Completion: Editor property is now writable.
* NEW: TableView: Raise a new Hide event when the editor is hidden.

[GB.FORM.EDITOR]
* NEW: TextEditor: CursorAt() is a new method that returns the cursor screen position from a line and a column.

[GB.GTK]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.

[GB.GTK3]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.

[GB.GUI.BASE]
* BUG: GridView: Newlines in cells with WordWrap property set are now taken into account correctly.

[GB.QT4]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.

[GB.QT5]
* NEW: TextBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: ComboBox: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.
* NEW: TextArea: CursorAt() is a new method that returns the cursor screen position from a text position. The CursorPos property has been removed.


git-svn-id: svn://localhost/gambas/trunk@7825 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-07-18 03:01:59 +00:00
Benoît Minisini
2d5e1ac26a [INTERPRETER]
* BUG: The error backtrace is now reset only when raising a new error. Consequently, the information is now kept when an error is propagated.


git-svn-id: svn://localhost/gambas/trunk@7807 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-07-07 08:50:33 +00:00
Benoît Minisini
f01ea65084 [INTERPRETER]
* BUG: Fix a possible misuse of kill() when calling Process.Kill().


git-svn-id: svn://localhost/gambas/trunk@7792 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-31 12:11:35 +00:00
Benoît Minisini
9779e9b105 [INTERPRETER]
* NEW: The Stream class now can raise a Resize event. Only the standard input stream (File.In) can raise it.
* NEW: If the startup class defines an Application_Read() or an Application_Resize() event handler, then the standard input stream is attached to it with the "Application" event name, so that these event handlers are used. Otherwise, the standard input stream must be attached and watched manually.


git-svn-id: svn://localhost/gambas/trunk@7785 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-22 22:03:16 +00:00
Benoît Minisini
d15a425953 [DEVELOPMENT ENVIRONMENT]
* NEW: Finish the redesign of the debug panel.

[INTERPRETER]
* BUG: Fix a stack mismatch leading to a crash in Eval() when an "Unknown symbol" error occurs.

[GB.FORM]
* BUG: SidePanel: The Hide event is now raised after the SidePanel has been actually hidden.


git-svn-id: svn://localhost/gambas/trunk@7754 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-05-04 01:38:46 +00:00
Benoît Minisini
89339bf9d5 [INTERPRETER]
* BUG: Don't raise the write callback associated with a watched file descriptor if the read callback has disabled it.


git-svn-id: svn://localhost/gambas/trunk@7748 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-27 00:05:54 +00:00
Benoît Minisini
3ce6340a09 [INTERPRETER]
* NEW: GB.GetArrayType() is a new API that returns the datatype of the elements of an array class.


git-svn-id: svn://localhost/gambas/trunk@7746 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-15 21:11:19 +00:00
Benoît Minisini
5366f3391e [INTERPRETER]
* BUG: Fix the GB.Every() API that does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@7739 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-13 19:57:48 +00:00
Benoît Minisini
f73ceed778 [INTERPRETER]
* NEW: Stream.Term.Width and Stream.Term.Height are two new properties that return the size of the terminal associated with the stream, if any.
* NEW: As soon as the terminal size is read on any stream with the previous properties, the SIGWINCH signal is watched, and the Application_Resize() public method of the startup class is called each time this signal is catched, meaning that the terminal has been resized.


git-svn-id: svn://localhost/gambas/trunk@7735 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-10 13:10:25 +00:00
Benoît Minisini
ebe3fdaf0c [INTERPRETER]
* BUG: Subst$() now does not crash anymore when its result is a void string.


git-svn-id: svn://localhost/gambas/trunk@7726 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-06 13:19:14 +00:00
Benoît Minisini
ff7bbe8a21 [DEVELOPMENT ENVIRONMENT]
* NEW: Add 'gb.form.terminal' to the component list.
* NEW: New component status icons.

[INTERPRETER]
* BUG: Correctly export Stream.Term description.
* NEW: Stream.Term.FlowControl is a new property that allows to set or retrieve if flow control is enabled on a terminal stream.

[GB.GTK]
* NEW: Change the name of 'NewChild' event argument.

[GB.GTK3]
* NEW: Change the name of 'NewChild' event argument.

[GB.QT4]
* NEW: Change the name of 'NewChild' event argument.

[GB.QT5]
* NEW: Change the name of 'NewChild' event argument.

[GB.FORM.TERMINAL]
* NEW: Support for the 'Set title' command.
* NEW: TerminalView now emits the Title event when the terminal requests a title change.
* NEW: Support for flow control. When output is suspended, the terminal contents becomes darker.
* BUG: Correctly update the scrollbar when switching between screens.


git-svn-id: svn://localhost/gambas/trunk@7714 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-04-03 10:54:21 +00:00
Benoît Minisini
d7e88bf641 [INTERPRETER]
* BUG: Fix a possible crash in String.Code().

[GB.FORM.TERMINAL]
* OPT: Compress the attribute array associated with each line.
* OPT: Drawing line routine uses the JIT compiler.



git-svn-id: svn://localhost/gambas/trunk@7701 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 19:06:03 +00:00
Benoît Minisini
79a4ea2a70 [INTERPRETER]
* BUG: Fix a crash on one error message thrown incorrectly.

[GB.FORM.TERMINAL]
* OPT: Optimize drawing routine. Still slow, but less flicker.
* NEW: TerminalView: Add a blink property that enables or disables cursor blink.

[GB.GTK]
* BUG: Use cairo_paint() instead of cairo_fill() when Paint.Operator is not Paint.OperatorOver. Is it a Cairo bug?

[GB.GTK3]
* BUG: Use cairo_paint() instead of cairo_fill() when Paint.Operator is not Paint.OperatorOver. Is it a Cairo bug?


git-svn-id: svn://localhost/gambas/trunk@7698 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-31 09:25:11 +00:00
Benoît Minisini
342848f9e1 [INTERPRETER]
* NEW: Stream.Term.Echo is a new property that allows to enable or disable the terminal echo mode.

[GB.FORM.EDITOR]
* NEW: Screen management splitted from TerminalView. TerminalView has two screens now. Switch between screens is not implemented yet.


git-svn-id: svn://localhost/gambas/trunk@7674 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-27 08:54:02 +00:00
Benoît Minisini
83f7f6677e [INTERPRETER]
* NEW: Stream.IsTerm is a new property that returns if a stream is a terminal.
* NEW: Stream.Term.Resize() is a new method that resizes a terminal.


git-svn-id: svn://localhost/gambas/trunk@7669 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-26 13:09:20 +00:00
Benoît Minisini
625888d44d [INTERPRETER]
* NEW: Timer: The constructor now takes the delay as optional parameter. And if that delay is specified, the timer is automatically started.

[GB.FORM.TERMINAL]
* NEW: TerminalView: internal control that only deals with displaying the terminal contents.


git-svn-id: svn://localhost/gambas/trunk@7664 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-25 13:06:09 +00:00
Benoît Minisini
31625057b2 [INTERPRETER]
* BUG: Fix declaration of CLASS_DESC_SYMBOL structure. The JIT compiler does not crash anymore.


git-svn-id: svn://localhost/gambas/trunk@7663 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-23 23:31:42 +00:00
Benoît Minisini
bd22007651 [INTERPRETER]
* BUG: Ignore EINPROGRESS and EAGAIN error codes when closing a file descriptor.


git-svn-id: svn://localhost/gambas/trunk@7658 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-23 02:58:13 +00:00
Benoît Minisini
1db9d8df47 [INTERPRETER]
* NEW: Add a symbol table optimization that is disabled because it's not worth it.
* OPT: Force inlining of functions in symbol tables routines.
* OPT: A little optimization on routine string argument extraction.


git-svn-id: svn://localhost/gambas/trunk@7650 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-20 18:29:12 +00:00
Benoît Minisini
4c3370908c [COMPILER]
* NEW: Work on internal expression datatype analyze has continued.
* OPT: Compiling syntax trees is faster now.

[INTERPRETER]
* OPT: Analyzing objects a method or a property applies to is faster now.
* NEW: Remove an unused method in table symbol implementation.


git-svn-id: svn://localhost/gambas/trunk@7647 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-20 01:27:31 +00:00
Benoît Minisini
214ce4f43e [INTERPRETER]
* BUG: Collection methods now always update the Key property, being called normally or from the debugger.
* BUG: The debugger now sends the current key when enumerating collection keys.


git-svn-id: svn://localhost/gambas/trunk@7627 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-11 23:44:26 +00:00
Benoît Minisini
cd9324c68e [INTERPRETER]
* BUG: Correctly detect error when closing a process stream.
* BUG: Ignore EBADF errors when closing a stream. It means that the underlying file descriptor has already been closed.


git-svn-id: svn://localhost/gambas/trunk@7624 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-08 20:24:24 +00:00
Benoît Minisini
a3ada1b09d [INTERPRETER]
* BUG: Undo r7620 change.


git-svn-id: svn://localhost/gambas/trunk@7623 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-08 20:05:45 +00:00
Benoît Minisini
6cee32287c [INTERPRETER]
* BUG: Now raise an error when a stream cannot be closed, instead of silently ignoring it.


git-svn-id: svn://localhost/gambas/trunk@7622 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-08 20:04:55 +00:00
Benoît Minisini
222a77cf16 [INTERPRETER]
* BUG: Close a buffered stream even if fclose() fails. Temporary fix.


git-svn-id: svn://localhost/gambas/trunk@7620 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-03-08 18:46:40 +00:00
Benoît Minisini
f2f26687a9 [INTERPRETER]
* BUG: Remove a debugging message.


git-svn-id: svn://localhost/gambas/trunk@7613 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-02-25 23:19:39 +00:00
Benoît Minisini
056190b68d [INTERPRETER]
* BUG: DateDiff() correctly returns zero when asking for the number of days between two timestamps having the same date.



git-svn-id: svn://localhost/gambas/trunk@7612 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-02-25 23:09:51 +00:00
Benoît Minisini
61064b6f6e [INTERPRETER]
* BUG: Week() now works correctly outside of UTC.


git-svn-id: svn://localhost/gambas/trunk@7611 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-02-25 22:59:49 +00:00
Benoît Minisini
a282de2f75 [INTERPRETER]
* BUG: Libraries are also searched in the current directory without version or vendor, for backward-compatibility.


git-svn-id: svn://localhost/gambas/trunk@7606 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-02-21 10:49:15 +00:00
Benoît Minisini
91c76c32a9 [INTERPRETER]
* BUG: Correctly handle the current component interpreter variable when an error occurs.


git-svn-id: svn://localhost/gambas/trunk@7603 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-02-14 16:15:31 +00:00
Benoît Minisini
41b9cc5e36 [INTERPRETER]
* NEW: Library specific path can be relative now. It is then relative to the project executable path.
* NEW: Libraries are now searched in the '~/.local/share/gambas3/lib' directory even if we are not in debugging mode.


git-svn-id: svn://localhost/gambas/trunk@7602 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-02-10 21:45:33 +00:00
Benoît Minisini
f34f52b928 [INTERPRETER]
* NEW: New library management.

[COMPILER]
* NEW: New library management.


git-svn-id: svn://localhost/gambas/trunk@7592 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-02-01 02:18:49 +00:00
Benoît Minisini
8afaad6c00 [INTERPRETER]
* BUG: Case insensitive comparison is now coherent whether natural comparison is specified or not.


git-svn-id: svn://localhost/gambas/trunk@7587 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-01-25 23:28:18 +00:00
Benoît Minisini
39ed4dd89e [INTERPRETER]
* NEW: Support for custom expression evaluators.

[GB.EVAL]
* NEW: You can now inheriting the Expression class to create a custom expression evaluator. You have to reimplement three methods: IsSubr(), that returns if a Gambas subroutine is allowed;
  IsIdentifier() that returns if a specific identifier is known; GetValue() that returns the value of an identifier. All other methods you add to the class become your specific subroutine,
  provided that you allow it in the IsIdentifier() method.


git-svn-id: svn://localhost/gambas/trunk@7545 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-01-03 16:44:24 +00:00
Benoît Minisini
66f5c498d2 [INTERPRETER]
* BUG: Shell$() does not try to convert into current locale anymore.


git-svn-id: svn://localhost/gambas/trunk@7542 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2016-01-02 11:11:52 +00:00
Benoît Minisini
a6f458e05c [INTERPRETER]
* NEW: _ready() is new special method that is called when an object construction is completly finished.

[COMPILER]
* NEW: Remove the call to _load() method in form constructors.

[GB.WEB.FORM]
* BUG: WebExpander: Remove a debugging message.
* NEW: WebForm.Debug is a new static property that, if set, dumps all exchanges between the server and the client in the browser console.
* NEW: Use the new _ready special method.
* NEW: WebLabel: Add the Border property.
* NEW: WebLabel: Alignment is a new property that defines the label horizontal alignment.
* NEW: A few changes in default style sheet.


git-svn-id: svn://localhost/gambas/trunk@7541 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-12-30 18:11:01 +00:00
Benoît Minisini
97ab7c0a3a [INTERPRETER]
* BUG: Correctly load optional exported classes at component loading.


git-svn-id: svn://localhost/gambas/trunk@7539 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-12-30 17:10:00 +00:00
Benoît Minisini
b9b46f3873 [CONFIGURATION]
* NEW: Add "-march=native" to the compilation flags. Maybe it could speed up then interpretrer a bit?

[DEVELOPMENT ENVIRONMENT]
* NEW: Connection editor: Update layout.
* NEW: Form editor: Clicking on the master selection selects the parent control.

[WEB SITE MAKER]
* NEW: Update for 3.8.4 version.

[GB.DB]
* BUG: Default values are now correctly taken into account by database templates.

[GB.DB.SQLITE3]
* BUG: Fix a possible uninitialized allocation of columns names.

[GB.UTIL]
* NEW: Class.Stat() class name argument now allows "../" in the name to search for classes in parent components.

[GB.WEB]
* NEW: Request.Language returns the main language requested by the HTTP client. This value can be directly assigned to System.Language.
* NEW: Session.Size returns the size of the session file in bytes.

[GB.WEB.FORM]
* NEW: Automatic management of favicon. The application favicon must be a file named "favicon.png" in the ".public" directory.
* NEW: The Align class for alignment constants.
* NEW: WebControl: Any control can raise a Message event now.
* NEW: The Message boxes now raise the "Message" event of the WebControl that opened the message box. If the event is not handled, then the event is raised by the WebForm of the control.
* NEW: The Select class for selection mode constants.
* BUG: WebComboBox: Define the default event.
* NEW: WebContainer: Indent is a new property that allows to add a left padding to the container.
* NEW: WebContainer: Extra children (those created after initialization) are now recreated with their event observer and event name, provided that the event observer is another WebControl.
* NEW: WebContainer: DeleteChildren() is a new method that deletes all container children.
* NEW: WebExpander: New container that implements an expander.
* NEW: WebForm: Teh application language now automatically switches to the language requested by the HTTP client.
* BUG: WebForm: Show() and ShowModal() method now raise the Open event.
* NEW: WebLabel: Add the Border property to the property list.
* NEW: WebLabel: Newlines in label text are automatically replaced by "<br>".
* NEW: WebTable: New control that implements an HTML table with automatic scrollbars. It gets its data through a Data event, and only displays the first hundred elements by default. A button allows to increase the number of displayed elements.
  The 'Mode' property allows to define the selection mode. When rows are selectable, an extra columns is added, with radion buttons on single selection mode, and checkboxes on multiple selection mode. The indexes of selected rows is returned by
  the 'Selection' property.
* BUG: Many fixes in the default stylesheet.


git-svn-id: svn://localhost/gambas/trunk@7536 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-12-27 18:16:32 +00:00
Benoît Minisini
e525d08dd7 [INTERPRETER]
* BUG: Object.Raise() now works correctly with events having arguments.


git-svn-id: svn://localhost/gambas/trunk@7486 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-21 05:00:27 +00:00
Benoît Minisini
8d24b22411 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix the function that detects if a control needs a parent.
* BUG: When adding every new file to the subversion repository, the
  '.gambas' directory is now correctly ignored.

[COMPILER]
* NEW: The _load() special method is now called just after the initial form
  creation is finished.

[GB.WEB.FORM]
* NEW: Message is a new class for displaying message boxes.
* BUG: Fix management of control names.
* NEW: Implement the WebContainer.Delete() method and WebWindow.Delete()
  methods. Child controls are now automatically deleted if their parent is
  also deleted.
* NEW: WebControl.Show() and WebControl.Hide() are two new methods that are
  synonymous of the Visible property.
* NEW: WebControl acts now like an collection-like array, so that you can
  store user data associated with a control in the session.
* NEW: WebControl.Reset() is a new method to reset the control user data.
* NEW: WebForm.ShowModal() shows a form as a modal window.
* NEW: WebForm.Show() does not take an optional parent anymore. Windows are
  always shown in the current form.
* NEW: Windows with no initial size are centered.
* NEW: WebImage is a new control that displays an image.
* NEW: WebLabel is a new control that displays a one-line vertically
  centered label.
* NEW: WebTextArea is a new control that implements a multi-line text area.


git-svn-id: svn://localhost/gambas/trunk@7482 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-18 01:29:28 +00:00
Benoît Minisini
2a9836fead [INTERPRETER]
* OPT: Optimize access to objects whose class is "simple", i.e. without
  parent, children, special check method, and not virtual.
* OPT: Detect when automatic conversion is useless in arithmetic and
  comparison operators.
* OPT: Optimize a bit inequality comparison operators.


git-svn-id: svn://localhost/gambas/trunk@7476 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-14 04:29:43 +00:00
Benoît Minisini
7723b72e66 [INTERPRETER]
* OPT: Subroutine table is faster to access now.
* OPT: Don't browse temporary directory at end if no temporary file has
  been used.


git-svn-id: svn://localhost/gambas/trunk@7469 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-11 03:40:50 +00:00
Benoît Minisini
adcb15514f [INTERPRETER]
* NEW: Collection.Default is a new property that allows to define the
  default value returned by a collection when a key has no value. Note that
  assigning the default value does not clear the key. You have to
  explicitly assign NULL for that.


git-svn-id: svn://localhost/gambas/trunk@7468 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-11 01:55:37 +00:00
Benoît Minisini
e6bc6243e1 [INTERPRETER]
* BUG: Application.Dir is correctly declared now. Consequently, it will
  work with JIT compiler.


git-svn-id: svn://localhost/gambas/trunk@7467 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-11 01:25:40 +00:00
Benoît Minisini
e719e777b4 [DEVELOPMENT ENVIRONMENT]
* NEW: Image selection dialog has now more options, and can choose image
  inside the ".public" directory.
* NEW: Image selection now depends on form family.

[INTERPRETER]
* NEW: Timer.Restart() is a new method that stops and starts again a timer.

[GB.FORM.EDITOR]
* NEW: TextEditor: Image line cache is now limited by the visible height.
* BUG: TextEditor: Don't use image line cache for lines too high.

[GB.WEB]
* BUG: WebPage.ToString() now works correctly.

[GB.WEB.FORM]
* NEW: Generate webform style sheet recursively.
* NEW: WebButton can have an icon with the Image property.
* NEW: WebHtml control is now usable.
* NEW: WebContainer Arrangement, Margin and Spacing properties.
* NEW: WebControl Expand property.
* NEW: WebContainer boolean Border property is there just for debugging.
* NEW: WebForm.Title property.


git-svn-id: svn://localhost/gambas/trunk@7459 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-09 01:41:20 +00:00
Benoît Minisini
ce6b2c35b3 [GB.UTIL]
* NEW: Class.Stat() is a new static method that returns information about
  a project class without loading it. At the moment you only get the parent
  class name and if the class is exported.

[GB.WEB.FORM]
* NEW: A new embryo component that aims at providing web application GUI
  controls, web application automatic user management (login & register),
  and many other features not yet decided.


git-svn-id: svn://localhost/gambas/trunk@7457 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-08 03:11:47 +00:00
Benoît Minisini
8c51cc2d2c [INTERPRETER]
* BUG: Fix Variant to Boolean conversion.


git-svn-id: svn://localhost/gambas/trunk@7441 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-02 15:54:13 +00:00
Benoît Minisini
217f075c8b [INTERPRETER]
* OPT: Collection access is faster now.
* OPT: LINE INPUT and INPUT are faster now.
* OPT: Conversions to Boolean, from and to Variant are faster now.


git-svn-id: svn://localhost/gambas/trunk@7440 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-11-02 03:24:44 +00:00
Benoît Minisini
26d137d850 [INTERPRETER]
* OPT: Some optimization in native array accessors.
* BUG: Fix a compilation warning.


git-svn-id: svn://localhost/gambas/trunk@7439 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-31 01:49:40 +00:00
Benoît Minisini
5a3264a97d [INTERPRETER]
* BUG: Ensure better entropy when initializing pseudo-random number 
  generator.
* NEW: Ensure a better hash key seed for hash tables.


git-svn-id: svn://localhost/gambas/trunk@7427 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-19 19:30:17 +00:00
Benoît Minisini
061bb35502 [INTERPRETER]
* BUG: Prevent the use of seed 0 for the random-number generator, by 
  replacing it by -1 if Randomize 0 is requested.


git-svn-id: svn://localhost/gambas/trunk@7426 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-18 21:10:13 +00:00
Benoît Minisini
9e5924c628 [INTERPRETER]
* BUG: Fix File.IsHidden() method for paths having "." or ".." element 
  inside.


git-svn-id: svn://localhost/gambas/trunk@7418 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-17 18:40:29 +00:00
Benoît Minisini
bc6493120e [INTERPRETER]
* NEW: File.IsHidden() is a new static method that returns if a path is 
  hidden, i.e. if its filename or one of its directory components starts 
  with a dot.

[GB.FORM]
* NEW: Setting an hidden path to a DirChooser or FileChooser automatically 
  toggles the ShowHidden property if needed.


git-svn-id: svn://localhost/gambas/trunk@7414 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-17 01:59:12 +00:00
Benoît Minisini
01a2b34270 [DEVELOPMENT ENVIRONMENT]
* NEW: Project exported control icons are thiner.

[INTERPRETER]
* NEW: Release classes having an array class if that array class has no 
  instance.

[GB.GUI.BASE]
* NEW: _Gui._Quit is a new method called by the GUI components during their
  "quit" hook. At the moment it releases Drag.Icon picture and voids the 
  Picture cache.


git-svn-id: svn://localhost/gambas/trunk@7403 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-10 02:02:12 +00:00
Benoît Minisini
bc5933f905 [INTERPRETER]
* BUG: Fix a crash when trying twice accessing a collection without the 
  good number of arguments.


git-svn-id: svn://localhost/gambas/trunk@7395 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-08 00:55:44 +00:00
Benoît Minisini
f073b22eae [DEVELOPMENT ENVIRONMENT]
* BUG: Correctly catch errors when reloading a file.

[INTERPRETER]
* BUG: Fix a possible crash when removing an element from an enumerated 
  collection.


git-svn-id: svn://localhost/gambas/trunk@7392 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-10-06 23:29:35 +00:00
Benoît Minisini
647c900268 [INTERPRETER]
* NEW: Relative paths beginning with ".../" always refer to files stored in 
  the main project archive.


git-svn-id: svn://localhost/gambas/trunk@7346 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-26 08:43:50 +00:00
Benoît Minisini
e838264954 [CONFIGURATION]
* BUG: Register mimetype icon with correct sizes.

[INTERPRETER]
* BUG: Fix Component.FindFromPath() method signature.


git-svn-id: svn://localhost/gambas/trunk@7340 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-25 18:35:44 +00:00
Benoît Minisini
dc46e9d20b [INTERPRETER]
* BUG: Val() correctly detect dates now, when the date or the time 
  separator is a space character.


git-svn-id: svn://localhost/gambas/trunk@7326 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-19 22:55:43 +00:00
Benoît Minisini
614e483598 [INTERPRETER]
* BUG: Task now ends with by calling _exit() instead of exit(). Because
  exit() calls the terminator of each loaded shared libraries, and that
  sometimes crashes.


git-svn-id: svn://localhost/gambas/trunk@7320 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-18 00:37:15 +00:00
Benoît Minisini
2395af1a33 [INTERPRETER]
* BUG: Fix thousand separator for locales like norwegian that return an 
  UTF-8 non-breaking space. Replace it by a normal space.


git-svn-id: svn://localhost/gambas/trunk@7318 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-16 22:51:31 +00:00
Benoît Minisini
991f685a3c [INTERPRETER]
* NEW: Component.FindFromPath() is a new method that returns the name of 
  the component a relative path belongs to.
* BUG: Fix the internal method that returns the component a relative path 
  belongs to.

[ARCHIVER]
* NEW: Better verbose mode.

[GB.GUI.BASE]
* NEW: Use the new Component.FindFromPath() method.

[GB.IMAGE]
* NEW: Color[].Luminance returns the luminance information of a color.


git-svn-id: svn://localhost/gambas/trunk@7309 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-14 10:53:02 +00:00
Benoît Minisini
4349d4b5bb [INTERPRETER]
* BUG: Fix interpretation of "../abc" paths.


git-svn-id: svn://localhost/gambas/trunk@7305 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-13 07:54:00 +00:00
Benoît Minisini
bdd864f41a [DEVELOPMENT ENVIRONMENT]
* BUG: Fix windows using icons not existing anymore.
* NEW: Add dark theme versions of some icons.

[INTERPRETER]
* NEW: "../xxx" now refers to a file located in the parent archive, not
  necessarily the main project archive. "../../xxx" refers to the 
  grand-parent archive, and so on. A component written in Gambas that 
  receives a relative path is supposed to prefix it with "../" if he wants 
  to access it. Please report any incompatibility!
* NEW: File.IsRelative() is a new method that returns if a file is 
  relative, i.e. if it does not starts with '/' or '~'.
  
[GB.FORM]
* NEW: The Stock class does not use the Picture cache anymore. It is 
  useless as normally the Stock class is accessed from the Picture[]
  method.

[GB.FORM.MDI]
* BUG: When browsing actions, do not try to load an icon for actions that
  do not have one.

[GB.GTK]
* NEW: Remove the Picture[] array accessor and the Picture.Flush() method.
  They are now implemented in the 'gb.gui.base' component.
  
[GB.GTK3]
* NEW: Remove the Picture[] array accessor and the Picture.Flush() method.
  They are now implemented in the 'gb.gui.base' component.
  
[GB.GUI.BASE]
* NEW: The Picture[] array accessor and the Picture.Flush() method are now 
  implemented in that component.
* NEW: Remove support for theme specific icons.
* NEW: Add support for right-to-left specific icons. For example, if an
  icon is named 'abc-ltr.png', then it will be considered as a 
  'left-to-right' icon, and the 'abc-rtl.png' icon will be used if the 
  current langauge is right-to-left written.
* NEW: Add support for dark theme specific icons. An icon named 
  'abc-dark.png' will be the dark theme version of the 'abc.png' icon.

[GB.QT4]
* NEW: Remove the Picture[] array accessor and the Picture.Flush() method.
  They are now implemented in the 'gb.gui.base' component.
* NEW: Message boxes do not support theme specific icons automatically 
  anymore.
  
[GB.QT5]
* NEW: Remove the Picture[] array accessor and the Picture.Flush() method.
  They are now implemented in the 'gb.gui.base' component.
* NEW: Message boxes do not support theme specific icons automatically 
  anymore.


git-svn-id: svn://localhost/gambas/trunk@7304 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-12 23:21:44 +00:00
Benoît Minisini
8d5317452a * Fake commit for r7251.
[INTERPRETER]
* BUG: GB.SubstString() API now can take a void substitution string. It 
  returns NULL instead of doing a segfault. Consequently, 
  RegExp.Replace() from gb.pcre can take a null replace string without 
  crashing.


git-svn-id: svn://localhost/gambas/trunk@7261 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-09-01 23:25:20 +00:00
Benoît Minisini
9c04684084 [INTERPRETER]
* BUG: Debugger: Displaying a dynamic variable in a static context does not
  crash anymore.


git-svn-id: svn://localhost/gambas/trunk@7258 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2015-08-30 14:39:38 +00:00