Commit graph

40 commits

Author SHA1 Message Date
Benoît Minisini
2402db91f0 [INTERPRETER]
* NEW: Support for imaginary number syntax. For example, using "3i" will 
  automatically load the gb.gsl component, create the corresponding complex 
  number and return it.

[COMPILER]
* NEW: Support for imaginary number syntax.

[GB.EVAL]
* NEW: Support for imaginary number syntax.

[GB.GSL]
* NEW: Support for imaginary number syntax.
* NEW: Vector class is now generic, and has two child classes: FloatVector 
  and ComplexVector, depending on the type of its elements.
* BUG: Support for arithmetic operators on Vector class has been removed. 
  It had too many problems.


git-svn-id: svn://localhost/gambas/trunk@4918 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-07-08 23:23:24 +00:00
Benoît Minisini
092b3abfa3 [COMPILER]
* NEW: Raise an error now when using TRY with GOTO, BREAK, CONTINUE or 
  STOP.


git-svn-id: svn://localhost/gambas/trunk@4523 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2012-03-02 22:05:55 +00:00
Benoît Minisini
dd3b512daf [CONFIGURATION]
* NEW: Update copyrights.


git-svn-id: svn://localhost/gambas/trunk@4384 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-12-31 02:39:20 +00:00
Benoît Minisini
099fda7cd2 [COMPILER]
* BUG: The lowest long integer constant (-9223372036854775808) is correctly 
  interpreted now.

[GB.EVAL]
* BUG: The lowest long integer constant (-9223372036854775808) is correctly 
  interpreted now.


git-svn-id: svn://localhost/gambas/trunk@4230 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-11-01 23:24:07 +00:00
Benoît Minisini
2fbf67cb29 [CONFIGURATION]
* NEW: Update FSF address in every source file.


git-svn-id: svn://localhost/gambas/trunk@3870 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-06-03 00:51:09 +00:00
Benoît Minisini
a3198eeb09 [DEVELOPMENT ENVIRONMENT]
* NEW: Disable kill buttons correctly in database editor window.

[GB.FORM]
* BUG: Fix a possible crash in TableView when the editor control is moved.

[GB.QT4]
* NEW: The GridView Change event is raised when there is no current row 
  now.


git-svn-id: svn://localhost/gambas/trunk@3843 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-05-14 22:21:23 +00:00
Benoît Minisini
9911a92652 [DEVELOPMENT ENVIRONMENT]
* NEW: Slightly change the search dialog look.
* BUG: The packager does not put "Terminal=true" in all *.desktop files 
  anymore.

[COMPILER]
* BUG: Compilation of class headers keywords correctly works again.


git-svn-id: svn://localhost/gambas/trunk@3786 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-04-22 16:52:59 +00:00
Benoît Minisini
b936c83f0d [CONFIGURATION]
* NEW: Update copyright strings.

[DEVELOPMENT ENVIRONMENT]
* NEW: Display menu shortcuts inside the form editor.


git-svn-id: svn://localhost/gambas/trunk@3670 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-03-21 00:04:10 +00:00
Benoît Minisini
33177a678a [COMPILER]
* BUG: Normal arrays of structures are not supported. Display an error 
  message instead of compiling something that crashes the interpreter.


git-svn-id: svn://localhost/gambas/trunk@3454 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2011-01-15 00:58:56 +00:00
Benoît Minisini
b86a35e903 [DEVELOPMENT ENVIRONMENT]
* BUG: The project property dialog does not crash anymore when there is an
  hidden component in the component list described in the '.project' file.

[INTERPRETER]
* BUG: -2147483648 is a valid integer.

[COMPILER]
* BUG: -2147483648 is a valid integer.

[GB.QT4]
* NEW: DrawingArea.NoBackground is a new property that prevent the 
  DrawingArea to automatically refresh its background when you know that 
  you will paint it fully yourself.

[GB.GTK]
* NEW: DrawingArea.NoBackground is a new property that prevent the 
  DrawingArea to automatically refresh its background when you know that 
  you will paint it fully yourself.


git-svn-id: svn://localhost/gambas/trunk@3393 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-12-22 18:31:44 +00:00
Benoît Minisini
9d11c85ef4 [COMPILER]
* BUG: Correctly read long constants whose value is the lower possible Long 
  value.


git-svn-id: svn://localhost/gambas/trunk@3327 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-11-27 14:46:25 +00:00
Benoît Minisini
32f6172c89 [DEVELOPMENT ENVIRONMENT]
* BUG: Fix a crash is structure declaration analyze.

[INTERPRETER]
* NEW: Support for static array of structures. A static array of structure 
  'MyStruct' will create a temporary object whose class is '$MyStruct[]'. 
  That class does not inherit 'Array', and has only a few methods of the 
  Array class.
* NEW: Byte[].ToString() is a new method to convert a byte array to a 
  string. If no length is specified, ToString() assumes that the byte array
  is a zero-terminated string.
* NEW: Byte[].FromString() is a new method that fills a byte array with the
  contents of a string.

[COMPILER]
* NEW: Declaration of static arrays of structures is allowed.


git-svn-id: svn://localhost/gambas/trunk@3031 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-07-07 22:06:05 +00:00
Benoît Minisini
b3db598050 [DEVELOPMENT ENVIRONMENT]
* BUG: Breakpoints are correctly reset when opening a new project.

[INTERPRETER]
* BUG: The GB.NewString(), GB.NewZeroString() and GB.TempString() API 
  signature has changed. All components have been updated accordingly.
* OPT: Many optimizations to speed up the interpreter.

[GB.EVAL]
* NEW: During syntax highlighting, the first character of class names is
  automatically converted to uppercase.


git-svn-id: svn://localhost/gambas/trunk@2992 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-06-04 23:48:53 +00:00
Benoît Minisini
a8f12f8e54 [GB.FORM]
* BUG: Use a default question icon for Message.Question icon.


git-svn-id: svn://localhost/gambas/trunk@2987 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-30 19:37:40 +00:00
Benoît Minisini
f75d640e3b [INTERPRETER]
* NEW: StrPtr() now can take a second argument to specify the length of the 
  string we will read from memory. If that argument is not specified, the
  string must ends with a zero character.
* OPT: Internal array management was optimized. It changes nothing for the
  Gambas array class.

[COMPILER]
* OPT: Internal array management was optimized.
* BUG: Using embedded structure with a class that is not a structure now
  raises an error.


git-svn-id: svn://localhost/gambas/trunk@2979 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-29 21:10:36 +00:00
Benoît Minisini
4fff317030 [DEVELOPMENT ENVIRONMENT]
* NEW: Handle structures in automatic completion.

[INTERPRETER]
* BUG: Make the malloc cache returns 8-bytes aligned pointers on 64 bits 
  systems.

[COMPILER]
* OPT: Some optimizations again.
* OPT: Do not use -O3 for symbol table routines. Valgrind says that it is 
  slower than with -Os. Strange...


git-svn-id: svn://localhost/gambas/trunk@2977 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-29 00:11:55 +00:00
Benoît Minisini
b727d17086 [INTERPRETER]
* OPT: Using object references is faster.
* BUG: Fix a misuse of GB.NewString() in the String class.

[COMPILER]
* BUG: Raise an error now when trying to create an array of structures.

[GB.QT4]
* OPT: Global widget event filter is faster.
* OPT: Do not internallt relayout TabStrip too often, because Qt takes a 
  lot of time to do that.



git-svn-id: svn://localhost/gambas/trunk@2974 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-28 06:24:14 +00:00
Benoît Minisini
b0a0c52af0 [INTERPRETER]
* NEW: More work on structure support.
* BUG: Fix optimization in error management.

[COMPILER]
* OPT: More optimizations. The Gambas 3 compiler is faster to compile the 
  Gambas 3 IDE than the Gambas 2 compiler to compile the Gambas 2 IDE, 
  which is smaller!
* NEW: Do not compute variable position and size, as it is done by the 
  interpreter anyway.

[GB.EVAL]
* NEW: Use the same optimizations as the compiler in the parser.

[GB.XML.RPC]
* BUG: The component compiles again.



git-svn-id: svn://localhost/gambas/trunk@2964 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-25 11:19:00 +00:00
Benoît Minisini
117f2ac635 [INTERPRETER]
* NEW: New GB.NewZeroString() API to create a Gambas string from a 
  null-terminated string. Components were modified to use it.
* OPT: Many optimizations everywhere.

[COMPILER]
* OPT: Many optimizations. The compiler should be noticeably faster.


git-svn-id: svn://localhost/gambas/trunk@2953 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-22 18:02:34 +00:00
Benoît Minisini
a2850ebc91 [CONFIGURATION]
* BUG: Do not compile database manager anymore, it has been deprecated.
* BUG: Compile the gb.dbus component.

[INTERPRETER]
* NEW: Pointer is a real datatype now.
* NEW: Static arrays came back. They are now like real array classes, 
  except that they are not resizable.
* NEW: IsPointer() is a new function that tells if an expression is a 
  pointer.
* NEW: All XXXX?() function synonymous were removed. Use the IsXXXX() 
  version instead.
* NEW: Remove now useless source files.

[COMPILER]
* NEW: Static arrays came back, with actually the same syntax as before.

[EXAMPLES]
* BUG: Fix the examples according to the new array syntax.



git-svn-id: svn://localhost/gambas/trunk@2949 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-19 12:43:57 +00:00
Benoît Minisini
a8efb8045f [INTERPRETER]
* NEW: Support for "static" arrays is finally removed.

[COMPILER]
* NEW: Support for "static" arrays is finally removed.



git-svn-id: svn://localhost/gambas/trunk@2945 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-14 21:30:54 +00:00
Benoît Minisini
ca37913578 [DEVELOPMENT ENVIRONMENT]
* BUG: Search string is correctly highlighted in all cases now.

[WEB SITE MAKER]
* NEW: German translation made by Stefan Lang.

[COMPILER]
* NEW: The 'New' keyword is now mandatory when declaring array variables 
  with dimensions. The IDE and component source code were modified 
  according to that change.

[GB.QT4.EXT]
* BUG: Search strings are correctly highlighted in editors with no syntax 
  highlighting.


git-svn-id: svn://localhost/gambas/trunk@2944 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-14 21:17:04 +00:00
Benoît Minisini
c61aa8d978 [DEVELOPMENT ENVIRONMENT]
* NEW: Support for enumerations.
* BUG: Clearing project history works again.

[COMPILER]
* NEW: Support for enumerations.


git-svn-id: svn://localhost/gambas/trunk@2935 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-05-05 20:58:55 +00:00
Benoît Minisini
d49fe17d83 [DEVELOPMENT ENVIRONMENT]
* NEW: Remove any use of Component.UserPath and any reference to "user 
  component".
* NEW: "libraries" management. Libraries are defined in a new tab of the
  projet property dialog. At the moment, libraries exported classes are not
  taken into account by the automatic completion.
* NEW: The ESC key now closes the help browser.
* BUG: Correctly translate compilation error messages.

[INTERPRETER]
* NEW: "libraries" management.
* NEW: The Component.UserPath property has been removed.
* BUG: Evaluating "Application.Path" or "Application.Name" on the command 
  line does not crash anymore.

[COMPILER]
* BUG: Enhance translation of some error messages.
* NEW: Take libraries into account for exported class declarations.

[ARCHIVER]
* NEW: new "-x" option to extract a file from an archive.

[GB.QT4.EXT]
* NEW: Be more clever when deciding if a line has been modified after 
  having its last character deleted.


git-svn-id: svn://localhost/gambas/trunk@2909 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-04-25 10:46:57 +00:00
Benoît Minisini
e61a0c45be [INTERPRETER]
* BUG: Hexadecimal numbers can be interpreted as Long only if they have 
  more than eight digits (32 digit for binary numbers), or if they are 
  unsigned.

[COMPILER]
* BUG: Hexadecimal numbers can be interpreted as Long only if they have 
  more than eight digits (32 digit for binary numbers), or if they are 
  unsigned.


git-svn-id: svn://localhost/gambas/trunk@2592 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2010-01-02 15:04:06 +00:00
Benoît Minisini
adeeb68063 [DEVELOPMENT ENVIRONMENT]
* NEW: Implement the property help with a WebView control.
* NEW: Add a button in the option dialog to clear the documentation cache.
* BUG: Correctly display online help on special methods.

[COMPILER]
* BUG: Long integer constants are now compiled correctly in all cases.


git-svn-id: svn://localhost/gambas/trunk@2471 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-12-10 02:48:25 +00:00
Benoît Minisini
916c559a26 [DEVELOPMENT ENVIRONMENT]
* NEW: Support for translated compiler error messages.
* NEW: French translatio of compiler error messages.

[COMPILER]
* BUG: Fix many error messages so that they are easily translatable.
* NEW: A new option, "-e", to output translatable error messages instead of 
  full ones.


git-svn-id: svn://localhost/gambas/trunk@2346 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-09-21 16:57:21 +00:00
Benoît Minisini
f5d698f1ec [COMPILER]
* NEW: The option "--no-old-read-write-syntax" allows to easily detect 
  where Read and Write instructions should be rewritten.


git-svn-id: svn://localhost/gambas/trunk@2345 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-09-20 18:04:04 +00:00
Benoît Minisini
26ab06c228 [DEVELOPMENT ENVIRONMENT]
* NEW: Use the new Read/Write syntax.

[INTERPRETER]
* NEW: New Read/Write syntax.
* NEW: IsVariant() returns if its argument is a Variant.

[COMPILER]
* NEW: New Read/Write syntax.
* NEW: Support for the old read syntax.

[WIKI CGI SCRIPT]
* NEW: Allow query arguments ("?v3" for example) inside wiki links.
* NEW: New look for the table of contents.
* BUG: Non-translated pages display again.

[GB.WEB]
* NEW: Use the new Read/Write syntax.


git-svn-id: svn://localhost/gambas/trunk@2344 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-09-20 17:32:12 +00:00
Benoît Minisini
f65184802d [CONFIGURATION]
* NEW: Update copyright and license string in all source files.


git-svn-id: svn://localhost/gambas/trunk@2241 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-08-17 10:41:51 +00:00
Benoît Minisini
a3d6ba73e5 [INTERPRETER]
* NEW: Do not use "boolean" anymore. Use "bool" instead.

[COMPILER]
* NEW: Do not use "boolean" anymore. Use "bool" instead.



git-svn-id: svn://localhost/gambas/trunk@2091 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2009-07-08 19:57:50 +00:00
Benoît Minisini
5acae8e8bb [WIKI CGI SCRIPT]
* NEW: Do not use <pre> markups, they cannot break lines.

[DEVELOPMENT ENVIRONMENT]
* NEW: Replace anonymous object arrays by template arrays.
* NEW: A button that clears the shortcut in the menu editor.
* NEW: When evaluating expression in the console, a semi-colon at the end 
  of the expression prevents the end newline to be printed, like in the 
  PRINT instruction.
* NEW: CTRL+G in the console makes it flash.
* OPT: Remove the CCoolTabs class, that was not used anymore.
* NEW: The main selected control is unselectable in the form editor now.
* NEW: Selected controls can be resized by pressing CTRL and an arrow key.
* NEW: Some form editor shortcuts have been changed to not conflict with
  the previous feature.
* BUG: Fix the horizontal position of the automatic completion.
* BUG: Look in project classes before component classes in automatic 
  completion.

[INTERPRETER]
* BUG: Fix the memory allocation debug routines.
* BUG: When instanciating a template array class, search for element class 
  symbol locally first.
* BUG: Template arrays now correctly release their elements.
* NEW: Update copyright year in gb_common.h header file.

[COMPILER]
* BUG: Manage .list and .info files incrementally, so that they are up to 
  date even when the project is not fully compiled.
* BUG: Float and Single constants are correctly written in the .info file.

[GB.QT.EXT]
* BUG: Fix some painting artifacts in Editor.
* BUG: In Editor, Undo and Redo now should always work correctly when a 
  line is rewritten.
* NEW: In Editor, when a line is rewritten, the Change event is always 
  emitted.
* NEW: The Editor is cleared now when it prints a CTRL+L character.
* NEW: The Editor flashes now when it prints a CTRL+G character.


git-svn-id: svn://localhost/gambas/trunk@1576 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-09-21 23:22:07 +00:00
Benoît Minisini
d38d3910d4 [INTERPRETER]
* BUG: Enhance and fix support for template array classes.

[COMPILER]
* BUG: Enhance and fix support for template array classes.

[GB.EVAL]
* NEW: Support for template array classes.


git-svn-id: svn://localhost/gambas/trunk@1531 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-08-31 23:45:47 +00:00
Benoît Minisini
50e6bd3583 [CONFIGURATION]
* NEW: Some clean-up in the acinclude.m4 file.

[DEVELOPMENT ENVIRONMENT]
* NEW: Small changes in the project property dialog layout.
* BUG: When opening a project, the packager information is correctly reset.

[WIKI CGI SCRIPT]
* NEW: Simplified chinese translation updated.
* NEW: Support for albanian language.
* NEW: New web site look.

[INTERPRETER]
* BUG: Really really fix the bit manipulation functions.
* NEW: Support for types object arrays. For example: Label[] for an array 
  of Labels.

[COMPILER]
* NEW: Support for types object arrays.
* BUG: Do not store the source file full path into object files, so that 
  rmplint does not cry.

[GB.GTK]
* BUG: Fix the tray icon management. Now GTK+ icons work on Gnome and KDE, 
  and are fully transparent!
* BUG: Tray icons are correctly refreshed when the icon is changed.

[GB.QT]
* BUG: Fix the menu shortcut management.
* BUG: Tray icons are correctly refreshed when the icon is changed.


git-svn-id: svn://localhost/gambas/trunk@1529 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-08-31 00:32:21 +00:00
Benoît Minisini
dcea4334d7 [DEVELOPMENT ENVIRONMENT]
* NEW: The signature popup now underlines the argument under the cursor.
* NEW: A new option to minimize the IDE when the project is run.
* NEW: Replaced the '[Modified]' text in the title of a modified form or 
  class by a star.
* BUG: GridView, TableView, TextEdit and Editor are correctly refreshed in 
  the form editor when they are renamed.


git-svn-id: svn://localhost/gambas/trunk@1468 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-07-19 13:35:36 +00:00
Benoît Minisini
e4d7400aa3 [CONFIGURATION]
* NEW: Removed the out-of-date README.FEDORA and README.REDHAT files.

[EXAMPLES]
* BUG: Fixed the MoviePlayer example.
* BUG: Fixed the Clock example.

[WIKI CGI SCRIPT]
* NEW: More titles and less borders.

[INTERPRETER]
* BUG: Uses the accurate method prototypes for Byte, Short and Single array
  classes.
* BUG: Many fixes in the error management.

[GB.DB]
* BUG: Fixed many warnings and some 64 bits stuff in all database drivers.

[GB.DEBUG]
* NEW: More explicit error messages when the creation of debugger fifos 
  fails.

[GB.COMPRESS.ZLIB]
* BUG: Fixed the compilation on 64 bits OS.

[GB.CORBA]
* NEW: Fixed some warnings.

[GB.GTK]
* NEW: Fixed some warnings.

[GB.IMAGE]
* NEW: Fixed some warnings.

[GB.NET.SMTP]
* NEW: Fixed some warnings.

[GB.PDF]
* NEW: Fixed some warnings.

[GB.QT.KDE]
* NEW: Fixed some warnings.

[GB.SDL]
* NEW: Fixed some warnings.

[GB.SDL.SOUND]
* NEW: Fixed some warnings.

[GB.XML]
* NEW: Fixed some warnings.

[GB.XML.XLST]
* NEW: Fixed some warnings.



git-svn-id: svn://localhost/gambas/trunk@1055 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-02-02 10:54:13 +00:00
Benoît Minisini
074e2f98c7 [INTERPRETER]
* NEW: Arguments passed by reference were implemented.

[COMPILER]
* NEW: Arguments passed by reference were implemented.


git-svn-id: svn://localhost/gambas/trunk@1016 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-19 17:52:05 +00:00
Benoît Minisini
4c02c6d338 ******** Merged /branches/64bits r918:1003 into /trunk
[CONFIGURATION]
* NEW: 64 bits port.

[EXAMPLES]
* BUG: Fixed the AnalogWatch example.

[WIKI CGI SCRIPT]
* NEW: Some little cosmetic changes.

[INTERPRETER]
* NEW: The extern function implementation has been redesigned and is now
  based on libffi, so that it works on 64 bits system. Because of a flaw in
  the compiler design, projects that use the Pointer datatype must be
  recompiled to be used on a 64 bits system. This flaw will be fixed in
  Gambas 3.
* OPT: Put some tables into read-only memory. About 1000 bytes are saved
  for each running interpreter, except the first one.
* BUG: Does not crash anymore if a component cannot be loaded.
* NEW: Spanish translation updated.
* NEW: A new interpreter API for returning a pointer.

[COMPILER]
* BUG: Correctly compiles LONG constants inside code.

[GB.DEBUG]
* BUG: Compiles and links the gb.debug components with the thread
  libraries.

[GB.DB.SQLITE3]
* BUG: Getting the primary index of a table without primary index is safe
  now.

[GB.GTK]
* BUG: Modified the GLib priority of watched descriptors, as the main loop 
  could enter in a loop in which user interface events were not managed.
* BUG: Message boxes use application title without crashing now.

[GB.OPENGL]
* BUG: Disable dead code.

[GB.QT.EXT]
* BUG: TextEdit.TextWidth and TextEdit.TextHeight were not declared as
  read-only properties.

[GB.XML.XSLT]
* BUG: XSLT class is now declared as being not creatable.


git-svn-id: svn://localhost/gambas/trunk@1006 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-17 21:39:26 +00:00
Benoît Minisini
beba6d9435 [64 BITS]
* NEW: Continue on fixing the use of long datatype.


git-svn-id: svn://localhost/gambas/trunk@917 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2008-01-06 18:49:23 +00:00
Benoît Minisini
ba19f3c1dd * Copy https://gambas.svn.sourceforge.net/svnroot/gambas/2.0 to https://gambas.svn.sourceforge.net/svnroot/gambas/gambas
git-svn-id: svn://localhost/gambas/trunk@893 867c0c6c-44f3-4631-809d-bfa615b0a4ec
2007-12-30 16:41:49 +00:00