You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(447) |
Nov
(163) |
Dec
(57) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(172) |
Feb
|
Mar
(123) |
Apr
(64) |
May
(1) |
Jun
(278) |
Jul
(89) |
Aug
(97) |
Sep
(62) |
Oct
(53) |
Nov
(119) |
Dec
(60) |
| 2006 |
Jan
(76) |
Feb
(1094) |
Mar
(363) |
Apr
(163) |
May
(57) |
Jun
(43) |
Jul
(39) |
Aug
(15) |
Sep
(33) |
Oct
(62) |
Nov
(8) |
Dec
|
| 2007 |
Jan
(9) |
Feb
(34) |
Mar
(2) |
Apr
(14) |
May
(8) |
Jun
(40) |
Jul
(21) |
Aug
(1) |
Sep
(20) |
Oct
(15) |
Nov
(26) |
Dec
|
| 2008 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
(1) |
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
|
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <cre...@us...> - 2007-09-30 23:48:10
|
Revision: 1743
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1743&view=rev
Author: creecode
Date: 2007-09-30 16:48:13 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
added GNU GPL license/copy text
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/startup/copying.fvc
Added: ODBs/trunk/frontierRoot/system/startup/copying.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/startup/copying.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/startup/copying.fvc 2007-09-30 23:48:13 UTC (rev 1743)
@@ -0,0 +1,344 @@
+FrontierVcsFile:3:wptx:system.startup.copying
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+<signature of Ty Coon>, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+
+
+
Property changes on: ODBs/trunk/frontierRoot/system/startup/copying.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-30 23:26:42
|
Revision: 1742
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1742&view=rev
Author: creecode
Date: 2007-09-30 16:26:46 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
changed second parameter name from columnNumber to parameterIndex, the old name was totally the wrong concept we are dealing with sqlite statement parmeter indexes, normally we wouldn't change a name but it's early in the game so we can get the concept right
Modified Paths:
--------------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc
Modified: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc 2007-09-30 23:24:37 UTC (rev 1741)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc 2007-09-30 23:26:46 UTC (rev 1742)
@@ -1,8 +1,10 @@
FrontierVcsFile:3:scpt:system.verbs.builtins.sqlite.setColumnBlob
-on setColumnBlob ( queryId, columnNumber, binaryAddress ) {
+on setColumnBlob ( queryId, parameterIndex, binaryAddress ) {
«Changes
+ «9/30/07; 3:14:55 PM by TAC
+ «changed second parameter name from columnNumber to parameterIndex, the old name was totally the wrong concept we are dealing with sqlite statement parmeter indexes, normally we wouldn't change a name but it's early in the game so we can get the concept right
«9/7/07; 11:23:45 AM by TAC
«created
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-30 23:24:34
|
Revision: 1741
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1741&view=rev
Author: creecode
Date: 2007-09-30 16:24:37 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
example scripts
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/createTable.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/populateTable.fvc
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/createTable.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/createTable.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/createTable.fvc 2007-09-30 23:24:37 UTC (rev 1741)
@@ -0,0 +1,35 @@
+FrontierVcsFile:3:scpt:system.verbs.builtins.sqlite.examples.createTable
+
+«Changes
+ «9/16/07; 7:45:51 PM by TAC
+ «added picture BLOB column
+ «formatting and coding tweaks
+ «9/5/06; 12:00:00 AM by DG
+ «created
+
+local ( databaseId, f, query, queryId, result );
+
+bundle { // f
+ local ( s );
+
+ case sys.os ( ) {
+ "MacOS" {
+ s = "Temporary Items"};
+ "Win95" {
+ s = "Temp"}};
+
+ f = file.getSpecialFolderPath ( "", s, false ) + "states.db3"};
+
+databaseId = sqlite.open ( f );
+
+query = "CREATE TABLE `States` ( `State` TEXT COLLATE NOCASE NOT NULL DEFAULT '', `Date_of_statehood` INTEGER NOT NULL DEFAULT '0', `Capital` TEXT COLLATE NOCASE NOT NULL DEFAULT '', `Capital_since` INTEGER NOT NULL DEFAULT '0', `Most_populous_city?` ENUM ( 1, 0 ) NOT NULL DEFAULT '0', `Population` INTEGER NOT NULL default '0', `Notes_on_current_capital` TEXT COLLATE NOCASE NOT NULL, `Picture` BLOB )";
+
+queryId = sqlite.compileQuery ( databaseId, query );
+
+result = sqlite.stepQuery ( queryId );
+
+result = sqlite.clearQuery ( queryId );
+
+sqlite.close ( databaseId )
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/createTable.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/populateTable.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/populateTable.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/populateTable.fvc 2007-09-30 23:24:37 UTC (rev 1741)
@@ -0,0 +1,56 @@
+FrontierVcsFile:3:scpt:system.verbs.builtins.sqlite.examples.populateTable
+
+«Changes
+ «9/16/07; 1:35:19 PM by TAC
+ «added call to sqlite.setColumnBlob
+ «added call to sqlite.getLastInsertRowId
+ «formatting and coding tweaks
+ «9/5/06; 12:00:00 AM by DG
+ «created
+
+local ( databaseId, f, i, query, queryId, record, result, state );
+
+on getField ( fieldNumber ) {
+ local ( s );
+
+ s = string.nthField ( record, ',', fieldNumber );
+ s = string.delete ( s, 1, 1 );
+ s = string.delete ( s, string.length ( s ), 1 );
+
+ return ( s )};
+
+bundle { // f
+ local ( s );
+
+ case sys.os ( ) {
+ "MacOS" {
+ s = "Temporary Items"};
+ "Win95" {
+ s = "Temp"}};
+
+ f = file.getSpecialFolderPath ( "", s, false ) + "states.db3"};
+
+databaseId = sqlite.open ( f );
+
+for i = 2 to string.countFields ( sqlite.data.states.csv, '\n' ) {
+ record = string.nthField ( sqlite.data.states.csv, '\n', i );
+ record = string.trimWhiteSpace ( record );
+
+ state = getField ( 1 );
+
+ query = "INSERT into States ( State, Date_of_statehood, Capital, Capital_since, `Most_populous_city?`, Population, Notes_on_current_capital, Picture ) VALUES ( '" + state + "', '" + getField ( 2 ) + "', '" + getField ( 3 ) + "', '" + getField ( 4 ) + "', '" + getField ( 5 ) + "', '" + getField ( 6 ) + "', '" + getField ( 7 ) + "', ? )";
+
+ queryId = sqlite.compileQuery ( databaseId, query );
+
+ if defined ( sqlite.data.states.pictures.[ state ] ) {
+ result = sqlite.setColumnBlob ( queryId, 1, @sqlite.data.states.pictures.[ state ] )};
+
+ result = sqlite.stepQuery ( queryId );
+
+ result = sqlite.getLastInsertRowId ( databaseId );
+
+ result = sqlite.clearQuery ( queryId )};
+
+sqlite.close ( databaseId )
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/examples/populateTable.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-30 23:20:23
|
Revision: 1740
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1740&view=rev
Author: creecode
Date: 2007-09-30 16:20:27 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
data for populate table example
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/23readMe.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alabama.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alaska.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arizona.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arkansas.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/california.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/oregon.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/washington.fvc
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/23readMe.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/23readMe.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/23readMe.fvc 2007-09-30 23:20:27 UTC (rev 1740)
@@ -0,0 +1,5 @@
+FrontierVcsFile:3:TEXT:system.verbs.builtins.sqlite.data.states.pictures.["#readMe"]
+
+images from < http://geography.about.com/library/blank/blxusx.htm >. Collections of blank and outline maps to print out for educational or personal use at home or in the classroom.
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/23readMe.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alabama.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alabama.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alabama.fvc 2007-09-30 23:20:27 UTC (rev 1740)
@@ -0,0 +1,5 @@
+FrontierVcsFile:3:data:system.verbs.builtins.sqlite.data.states.pictures.alabama
+
+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3fs2W82690zqi1VcdSyORYpUauHwyIiKscjF86ORMpljkRydFRDP1JqCa019uoKS1VNdWXLitgVJI4YGPYiLiSR7kVMoquwxr37Y5HIxdqnDVVusKRiXGrorSlLC9iT22h41ZO+JXIj5mTKkfNjVV3CSF7ncPa12Xpt+qazprjmPStJU32V3qTwNVlFjpvWrcnCc1rsI5IlkennYY5WuRMuvqtXS6isNFLcLdb31cy1UtHQwLO6OmgVvF31EuEka9Xxx4ZFG9qztciubE/f8AoIAAAAAAAAAAAAOG6001ZQywU1dU0EjsbammbG6RmFReSSMe3njHNq8lXGFwp+d1fZHFXVM01x1prCuZM90klJW1VPUUjlVc86eSBYsIvNE2YaqIqImExrWXs9dYaV9LY9T3e20z3rI6KjobbCxz1REVyo2kRM4REz/BDvTRdLVLm+3W93py+araqsWGF8f+2+CnSOGRq88o9jlciqjlVuETastktVhpX01kttFbaZ71kdFRwMhY5yoiK5UaiJnCImf4IaYAAAAAAAABhXrTtJc6plfDJJb7wxiRR3OjbGlQ2PKqsaq9rmvjXKrse1zc4ciI5rXJN6jqploY6bWrvAjaeZk1PqSgmjSCKRq+aqrKirTuem9qte18e2Th8V7n7V+t3prxpl9tubtU3a6U3f6aknoqyGkayVlRK2nRUdFAxzVY6VknVc7Fby3ZT6XO3UWs9Wy0N0o6avsdixxKepibJHLXSRoqZa5P/FA9F/aa5apOjouVBY9OWSwcZbFZrbbePt4qUdKyHibc7d21EzjK4z0ypsAAAAAAAAAAAAAAAAAAAAAAAAAA/Hu1ij8VtHXGms9TUstdzoa+kfbpH8SCBEoKqVHQ7sujxwGMSNrkia3OGIq5LifRlplqJKuhWutVXM5Z3SW2slp2OmVcrM+FruFLJnGVkY/dhEduRMEZo7W17f223/QFfPHXW+10LamOumia2rlc5IXYese2PCcVyJtjbya3OVyq/rgAAAAAAB//2Q==
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alabama.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alaska.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alaska.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alaska.fvc 2007-09-30 23:20:27 UTC (rev 1740)
@@ -0,0 +1,5 @@
+FrontierVcsFile:3:data:system.verbs.builtins.sqlite.data.states.pictures.alaska
+
+SlBFR//Y/+AAEEpGSUYAAQEBAEgASAAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/8AACwgB6gIrAQEiAP/EABsAAQEBAQEBAQEAAAAAAAAAAAAGBQcEAwgB/8QAOxAAAgICAgIBAwIEBAQFBAMAAQIAAwQFBhESEyEHFCIVMSMyQXUWNlG1N2FxsxckJTNCCDRSsVRigf/aAAgBAQAAPwD9UxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERESX5psthXiNp+Nmock2GNe2G9zeNWOECq17kq3YRrKwFCsWZlHQXyZcvh3LdFg8YxcfZ73Nxr8PFWy4cn6xM5KyyqGtDqnkAzrX7QCrMOvJm7JvIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJ4dnsMbV4F2ZnW+qivoEhSzMxIVVVQCWZmIVVUEsSAASQJlcYwMkXZm63FXq22f0jVBgRRj1vYaKfxJHkq2MzkFu3d+mKBAPVvTqMD07re5GPjVa/yKZGXeK6aGs6Ty/IhQx78Ax+QHZQQHYHhvM+W7vhvGruPcD1GTibHY3W52sxKMF3bX0Pf3XWtXpYM161Zl/rfwNS+adfw1B7dx/c35uVla7aYteHt8RK7rqabjfUarC4rsSwqpIJrsUhlVgyN8ePizbsRERERERERERERERERERERERERERERERERERERERETL3u1p0uufNyEssUPXTXVUAXttsda6617IALO6qCxCjvskDsjmWfyf6hf+I+PrcTUY16Y9K3ZOvovFeP67iUS9sx0YuqNXb3WK6LO/5VuVWaUt2Zz/AGO5oq1+FqNJr60KZdmyqOWXs/LpsY03qXrJAH8VaWAIPRJKrs6vTZz59WfyPPxtlmY/YxVxsVsajH7BDOK2ssJtIJXzLfC9qoXys86Ocz+qeBfjcl4VyXTabJ3G6w9kMIIt9y000X0XI7uFDrWoZq2azwJ6VQT11K7i+nv1GLltscurM2mblPl5eVVSaUscgIgWss3iFqSqsfJ78Oz2xJON+h7jQ8k22+1lh3f6j6/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g7PX8wng/xVsnPnjcL5Jfjt812+WHV5r/AEbwsyFsXsfPi6qw/YgHsT+fq3Ksr+JgcVxseofiV3G0Wi4t/qFx671K/t8lwewfxAAJ9es02VZnVbTf5Ryc9O2oxU6+2wGYFT6vxDO3ifE2v2T2/iK1sZJRxERERERERERERERERESU+pX+XMP+9an/AHHHlXERERERERERERERERERERERERJLkQ9/OuJY+P8Aw8uv7vNtt/bzxVqFT1dj5Pdt+K/ifxPq7J7VQa2IiIiIiIiIiIiIiIiIiIiSn1K/y5h/3rU/7jjyriIiIiIiIiIiIiIiIiIiIiIiJ4dq+dVg2PqsfGycwdeurJvamtvkd9uqOR8dn+U9kAfHfYgOIZm4yObvncvr/S8/Lw/tsTWXYJ8aQGaxhVlrdZU7MO/NQEdxjo5rRU+emxERERERERERERERERERESU+pX+XMP8AvWp/3HHlXERERERERERERERERERERERERPDs9fjbTAuw86r20WdEgMVZWBDKysCCrKwDKykFSAQQQDMD9Q2/HB3yC3Hz9Inw21rU1XY6/sGyKgCpUddvchUAt2akRWcVsRERERERERERERERERERJT6lf5cw/wC9an/cceVcRERERERERERERERERERERERERJP9N/wh/H0GH/6F++TqsSr/AO3/ANbsatR//r0qPy+XQezyW6jw8mnNxKMrDuruxbkWyq2pwyWIw7DKR8EEEEET0xERERERERERERERERESU+pX+XMP+9an/cceVcREREREREREREREREREREREREREkk749zKnHT8NTvPP1VD+WnPUPa/Q+T/GrFjnrxUNQxPb3EmtiIiIiIiIiIiIiIiIiIkp9Sv8uYf961P+448q4iIiIiIiIiIiIiIiIiIiIiIiIiJJfUP2Y+DqdtjUZOTkarZY+QKseh72KWE49x9aAu3jTfa4C/Pag/IBB0NJyvRbzKfF1e2wsnNrQ2WYa3AZFIBAPspP51kEgEMAQfggH4nky+X6/H+oOBxBraxsMvX254Dv4npXVUVQR05Ye5ugewKSSOj3NXS7vVb7FfJ0mywtljI5ra3DvS5FYAEqSpI76IPX/MTTiIiIiIiIiIiIiIiIkp9Sv8uYf961P+448q4iIiIiIiIiIiIiIiIiIiIiIiIiImZutJqt9ipjbvW4WyxkcWL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ERERERERERERERERERERPNmZNOFiX5WZdXTi0o1lttrhUrRR2WYn4AABJJnJ8jRZX1Iztm264346azMWvEy91UEuqwkFYsTHxyC9bWul4NjemwJZUwLFFVOnZGk1eVphqMrWYN2qCJWMKzHRqAideC+sjx6HiOh18dD/SacRERERERERERERERERERERERERERERERERERERERExsDkWo2G1yNbgbDHyczG8hbXU4bxZWCuvY+PJCV81B7TzTyA8172YiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJkf4i0n67+ifrOt/Wv8A+B90n3H8vn/7ffl/L+X7ft8/tNeTvFuX6flPt/Rb8mz1005P8fCvx/Kq3y9di+1F81bwfpl7HxNnLusoxbrase3JetGdaqioewgdhVLEL2f2HZA/1IkPsd1zXZZy42o4vk6vFallbIz8jFDewhh2Hrtt9Xh0pBNNwct4lUALGZ+jXCuT6urWXcspwsPExUsyqNbi2+IxM5mtre3wXzTp6rCfGt0qQuwFPf5Ds8REREREREREREREREREREREREREREREREREREREREREgua8Jv5NyTX5F1+E2iKJTssF8c+zKSu4ZFZL9lXC2VooRk+EuyOm7cSg3+pe7iWZp9NThY6tjfa002UqaBX14+vxKsqgr2oJR1XsEo4BQxf0k+kuu4JXr89zUd+mvbCyrMUeNFgZq3PwfyYhkJ82PZ82HSoK66+oxERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE/9k=
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/alaska.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arizona.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arizona.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arizona.fvc 2007-09-30 23:20:27 UTC (rev 1740)
@@ -0,0 +1,5 @@
+FrontierVcsFile:3:data:system.verbs.builtins.sqlite.data.states.pictures.arizona
+
+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
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arizona.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arkansas.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arkansas.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/arkansas.fvc 2007-09-30 23:20:27 UTC (rev 1740)
@@ -0,0 +1,5 @@
+FrontierVcsFile:3:data:system.verbs.builtins.sqlite.data.states.pictures.arkansas
+
+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...
[truncated message content] |
|
From: <cre...@us...> - 2007-09-30 23:19:12
|
Revision: 1739
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1739&view=rev
Author: creecode
Date: 2007-09-30 16:19:16 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
data for populate table example
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/csv.fvc
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/csv.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/csv.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/csv.fvc 2007-09-30 23:19:16 UTC (rev 1739)
@@ -0,0 +1,107 @@
+FrontierVcsFile:3:TEXT:system.verbs.builtins.sqlite.data.states.csv
+
+"State","Date_of_statehood","Capital","Capital_since","Most_populous_city?","Population","Notes_on_current_capital"
+
+"Alabama","1819","Montgomery","1846","0","200127",""
+
+"Alaska","1959","Juneau","1906","0","30987",""
+
+"Arizona","1912","Phoenix","1889","0","1475834",""
+
+"Arkansas","1836","Little Rock","1836","0","184564",""
+
+"California","1850","Sacramento","1854","0","467343",""
+
+"Colorado","1876","Denver","1867","0","566974","Denver City served as the capital of the Colorado Territory 1861-1862 and 1867-1876."
+
+"Connecticut","1776","Hartford","1875","0","124397","Hartford also served as the capital 1639-1686 and 1689-1700, and as the co-capital with New Haven 1701-1875."
+
+"Delaware","1776","Dover","1777","0","32135",""
+
+"Florida","1845","Tallahassee","1824","0","156612",""
+
+"Georgia","1776","Atlanta","1868","0","483108",""
+
+"Hawaii","1959","Honolulu","1845","0","371657",""
+
+"Idaho","1890","Boise","1865","0","216248",""
+
+"Illinois","1818","Springfield","1839","0","111454",""
+
+"Indiana","1816","Indianapolis","1825","0","791926",""
+
+"Iowa","1846","Des Moines","1857","0","194163",""
+
+"Kansas","1861","Topeka","1856","0","122327",""
+
+"Kentucky","1792","Frankfort","1792","0","27741",""
+
+"Louisiana","1812","Baton Rouge","1880","0","224097","Baton Rouge also served as the capital 1849-1862."
+
+"Maine","1820","Augusta","1832","0","18560","Augusta was officially capital from 1827 but the legislature did not sit there until 1832."
+
+"Maryland","1776","Annapolis","1694","0","36217",""
+
+"Massachusetts","1776","Boston","1630","0","596368",""
+
+"Michigan","1837","Lansing","1847","0","119128","Lansing is the only state capital that is not also the county seat of the county in which it is situated."
+
+"Minnesota","1858","Saint Paul","1849","0","287151",""
+
+"Mississippi","1817","Jackson","1821","0","184256",""
+
+"Missouri","1821","Jefferson City","1826","0","39636",""
+
+"Montana","1889","Helena","1889","0","25780",""
+
+"Nebraska","1867","Lincoln","1867","0","225581",""
+
+"Nevada","1864","Carson City","1861","0","57701",""
+
+"New Hampshire","1776","Concord","1808","0","42221",""
+
+"New Jersey","1776","Trenton","1784","0","84639",""
+
+"New Mexico","1912","Santa Fe","1610","0","70631","El Paso del Norte served as the capital of the Santa Fé de Nuevo Méjico colony-in-exile during the Pueblo Revolt of 1680-1692."
+
+"New York","1776","Albany","1797","0","95993",""
+
+"North Carolina","1776","Raleigh","1794","0","359332",""
+
+"North Dakota","1889","Bismarck","1883","0","55532",""
+
+"Ohio","1803","Columbus","1816","0","730657",""
+
+"Oklahoma","1907","Oklahoma City","1910","0","541500",""
+
+"Oregon","1859","Salem","1855","0","149305","Salem first served as the capital in 1851, but Corvallis was briefly the capital in 1855."
+
+"Pennsylvania","1776","Harrisburg","1812","0","48950",""
+
+"Rhode Island","1776","Providence","1900","0","176862","Providence also served as the capital 1636-1686 and 1689-1776. It was one of five co-capitals 1776-1853, and one of two co-capitals 1853-1900."
+
+"South Carolina","1776","Columbia","1786","0","122819",""
+
+"South Dakota","1889","Pierre","1889","0","13876",""
+
+"Tennessee","1796","Nashville","1826","0","607413","Nashville also served as the capital 1812-1818."
+
+"Texas","1845","Austin","1839","0","690252",""
+
+"Utah","1896","Salt Lake City","1858","0","181743",""
+
+"Vermont","1791","Montpelier","1805","0","8035",""
+
+"Virginia","1776","Richmond","1780","0","195251",""
+
+"Washington","1889","Olympia","1853","0","42514",""
+
+"West Virginia","1863","Charleston","1885","0","52700","Charleston also served as the capital 1870-1875."
+
+"Wisconsin","1848","Madison","1838","0","221551",""
+
+"Wyoming","1890","Cheyenne","1869","0","55362",""
+
+
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/csv.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-30 23:18:53
|
Revision: 1738
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1738&view=rev
Author: creecode
Date: 2007-09-30 16:18:57 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
data for populate table example
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/pictures/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-30 23:18:05
|
Revision: 1737
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1737&view=rev
Author: creecode
Date: 2007-09-30 16:18:09 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
data for populate table example
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/states/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-30 23:16:23
|
Revision: 1736
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1736&view=rev
Author: creecode
Date: 2007-09-30 16:16:26 -0700 (Sun, 30 Sep 2007)
Log Message:
-----------
data for populate table example
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/data/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-23 01:32:16
|
Revision: 1735
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1735&view=rev
Author: creecode
Date: 2007-09-22 18:32:18 -0700 (Sat, 22 Sep 2007)
Log Message:
-----------
in versionnumtostring function, for Mac, when 10.1a16 (an example) was entered into versions.h, function would return 10.1a10, problem: non-released revision was being treated as BCD instead of number as specified in < http://developer.apple.com/technotes/tn/tn1132.html >, had to change lNumVersion struct
Modified Paths:
--------------
Frontier/trunk/Common/source/fileverbs.c
Modified: Frontier/trunk/Common/source/fileverbs.c
===================================================================
--- Frontier/trunk/Common/source/fileverbs.c 2007-09-08 20:22:43 UTC (rev 1734)
+++ Frontier/trunk/Common/source/fileverbs.c 2007-09-23 01:32:18 UTC (rev 1735)
@@ -1466,575 +1466,600 @@
} /*seticonposverb*/
#ifdef MACVERSION
-/*
-11/17/92 dmb: this definition of the version resourcemakes it easier to
-pick apart the BCD
-*/
-typedef struct lNumVersion {
-#ifdef SWAP_REZ_BYTE_ORDER
- unsigned short nonRelRev2: 4; /* 2nd nibble of revision level*/
- unsigned short nonRelRev1 : 4; /*revision level of non-released version*/
- unsigned short stage : 8; /*stage code: dev, alpha, beta, final*/
- unsigned short bugFixRev : 4; /*3rd part is 1 nibble in BCD*/
- unsigned short minorRev : 4; /*2nd part is 1 nibble in BCD*/
- unsigned short majorRev2: 4; /* 2nd nibble of 1st part*/
- unsigned short majorRev1: 4; /*1st part of version number in BCD*/
-#else
- unsigned short majorRev1: 4; /*1st part of version number in BCD*/
- unsigned short majorRev2: 4; /* 2nd nibble of 1st part*/
- unsigned short minorRev : 4; /*2nd part is 1 nibble in BCD*/
- unsigned short bugFixRev : 4; /*3rd part is 1 nibble in BCD*/
- unsigned short stage : 8; /*stage code: dev, alpha, beta, final*/
- unsigned short nonRelRev1 : 4; /*revision level of non-released version*/
- unsigned short nonRelRev2: 4; /* 2nd nibble of revision level*/
-#endif
- } lNumVersion;
-
-typedef struct lVersRec {
- lNumVersion numericVersion; /*encoded version number*/
- short countryCode; /*country code from intl utilities*/
- Str255 shortVersion; /*version number string - worst case*/
- Str255 reserved; /*longMessage string packed after shortVersion*/
- } lVersRec, *lVersRecPtr, **lVersRecHndl;
-
-
-static byte bsstages [] = "\pdab"; /*dev, alpha, beta*/
-
-
-#define emptyversionsize ((long) sizeof (lNumVersion) + sizeof (short) + 2)
-
-
-static boolean versionnumtostring (lNumVersion numvers, bigstring bs) {
+ typedef struct lNumVersion {
- /*
- return the packed version number as a string, e.g. "1.0b2". need
- definitions above, which is mis-defined in the Think C headers
- */
+ //
+ // 2007-09-22 creedon: the nonRelRev is not a BCD number, see < http://developer.apple.com/technotes/tn/tn1132.html >
+ //
+ // 1992-11-17 dmb: this definition of the version resource makes it easier
+ // to pick apart
+
+ #ifdef SWAP_REZ_BYTE_ORDER
+
+ /* unsigned short nonRelRev2: 4; // 2nd nibble of revision level
+ unsigned short nonRelRev1: 4; // revision level of non-released version */
+
+ unsigned short nonRelRev: 8; // revision level of non-released version
+ unsigned short stage: 8; // stage code: dev, alpha, beta, final
+ unsigned short bugFixRev: 4; // 3rd part is 1 nibble in BCD
+ unsigned short minorRev: 4; // 2nd part is 1 nibble in BCD
+ unsigned short majorRev2: 4; // 2nd nibble of 1st part
+ unsigned short majorRev1: 4; // 1st part of version number in BCD
+
+ #else
+
+ unsigned short majorRev1: 4; // 1st part of version number in BCD
+ unsigned short majorRev2: 4; // 2nd nibble of 1st part
+ unsigned short minorRev: 4; // 2nd part is 1 nibble in BCD
+ unsigned short bugFixRev: 4; // 3rd part is 1 nibble in BCD
+ unsigned short stage: 8; // stage code: dev, alpha, beta, final
+ unsigned short nonRelRev: 8; // revision level of non-released version
+
+ /* unsigned short nonRelRev1: 4; // revision level of non-released version
+ unsigned short nonRelRev2: 4; // 2nd nibble of revision level */
+
+ #endif
+
+ } lNumVersion;
+
- /*
- lNumVersion numvers;
+ typedef struct lVersRec {
+ lNumVersion numericVersion; /*encoded version number*/
+ short countryCode; /*country code from intl utilities*/
+ Str255 shortVersion; /*version number string - worst case*/
+ Str255 reserved; /*longMessage string packed after shortVersion*/
+ } lVersRec, *lVersRecPtr, **lVersRecHndl;
+
- numvers = *(lNumVersion *) &versionnum;
- */
+ static byte bsstages [] = "\pdab"; /*dev, alpha, beta*/
- setemptystring (bs);
- if (numvers.majorRev1 != 0)
- shorttostring (numvers.majorRev1, bs);
+ #define emptyversionsize ((long) sizeof (lNumVersion) + sizeof (short) + 2)
- pushint (numvers.majorRev2, bs);
- pushchar ('.', bs);
+ static boolean versionnumtostring (lNumVersion numvers, bigstring bs) {
- pushint (numvers.minorRev, bs);
-
- if (numvers.bugFixRev > 0) {
+ //
+ // 2007-09-22 creedon: bug fix, when 10.1a16 was entered into
+ // versions.h, function would return 10.1a10,
+ // problem, non-released revision was being
+ // treated as BCD instead of number as specified
+ // in < http://developer.apple.com/technotes/tn/tn1132.html >,
+ // had to change lNumVersion struct
+ //
+ // return the packed version number as a string, e.g. "1.0b2". need
+ // definitions above, which is mis-defined in the Think C headers
+ //
+ /*
+ lNumVersion numvers;
+
+ numvers = *(lNumVersion *) &versionnum;
+ */
+
+ setemptystring (bs);
+
+ if (numvers.majorRev1 != 0)
+ shorttostring (numvers.majorRev1, bs);
+
+ pushint (numvers.majorRev2, bs);
+
pushchar ('.', bs);
- pushint (numvers.bugFixRev, bs);
- }
-
- if (numvers.stage < finalStage) {
+ pushint (numvers.minorRev, bs);
- pushchar (bsstages [numvers.stage / developStage], bs);
+ if (numvers.bugFixRev > 0) {
- if (numvers.nonRelRev1 > 0)
- pushint (numvers.nonRelRev1, bs);
+ pushchar ('.', bs);
+
+ pushint (numvers.bugFixRev, bs);
+
+ }
+
+ if (numvers.stage < finalStage) {
+
+ pushchar (bsstages [numvers.stage / developStage], bs);
+
+ /* if (numvers.nonRelRev1 > 0)
+ pushint (numvers.nonRelRev1, bs);
+
+ pushint (numvers.nonRelRev2, bs); */
+
+ pushint (numvers.nonRelRev, bs);
+
+ }
+
+ return (true);
- pushint (numvers.nonRelRev2, bs);
- }
+ } // versionnumtostring
+
- return (true);
- } /*versionnumtostring*/
-
-
-typedef byte shortstring [16];
-
-static short stringtobcd (bigstring bs) {
+ typedef byte shortstring [16];
- register short i;
- register short n = 0;
+ static short stringtobcd (bigstring bs) {
- for (i = 1; i <= stringlength (bs); ++i)
- n = (n << 4) + (bs [i] - '0');
-
- return (n);
- } /*stringtobcd*/
+ register short i;
+ register short n = 0;
+
+ for (i = 1; i <= stringlength (bs); ++i)
+ n = (n << 4) + (bs [i] - '0');
+
+ return (n);
+ } /*stringtobcd*/
-static boolean stringtoversionnum (bigstring bs, NumVersion *versionnum) {
-
- /*
- convert the string to a packed version number. see above.
- */
-
- NumVersion numvers;
- register short i;
- register byte ch;
- shortstring bsnumber [4]; /*the three rev numbers, as strings*/
- short number [4]; /*the rev numbers*/
- short ixnumber = 0;
-
- numvers.stage = finalStage;
-
- for (i = 0; i < 4; ++i)
- setemptystring (bsnumber [i]);
-
- for (i = 1; i <= stringlength (bs); ++i) {
+ static boolean stringtoversionnum (bigstring bs, NumVersion *versionnum) {
- ch = bs [i];
+ /*
+ convert the string to a packed version number. see above.
+ */
- if (isnumeric (ch)) { /*digit: add to current number string*/
-
- pushchar (ch, bsnumber [ixnumber]);
-
- continue;
- }
+ NumVersion numvers;
+ register short i;
+ register byte ch;
+ shortstring bsnumber [4]; /*the three rev numbers, as strings*/
+ short number [4]; /*the rev numbers*/
+ short ixnumber = 0;
- if (ixnumber == 3) /*we're full: take what we've got so far*/
- goto exit;
+ numvers.stage = finalStage;
- if (ch == '.') { /*decimal point: move on to next number*/
+ for (i = 0; i < 4; ++i)
+ setemptystring (bsnumber [i]);
+
+ for (i = 1; i <= stringlength (bs); ++i) {
- ++ixnumber;
+ ch = bs [i];
- continue;
- }
-
- ixnumber = 3; /*only valid data would be stage character & number*/
-
- switch (lowercasechar (ch)) {
-
- case 'a':
- numvers.stage = alphaStage;
+ if (isnumeric (ch)) { /*digit: add to current number string*/
- break;
+ pushchar (ch, bsnumber [ixnumber]);
+
+ continue;
+ }
- case 'b':
- numvers.stage = betaStage;
+ if (ixnumber == 3) /*we're full: take what we've got so far*/
+ goto exit;
+
+ if (ch == '.') { /*decimal point: move on to next number*/
- break;
+ ++ixnumber;
+
+ continue;
+ }
- case 'd':
- numvers.stage = developStage;
+ ixnumber = 3; /*only valid data would be stage character & number*/
+
+ switch (lowercasechar (ch)) {
- break;
-
- default:
- goto exit;
+ case 'a':
+ numvers.stage = alphaStage;
+
+ break;
+
+ case 'b':
+ numvers.stage = betaStage;
+
+ break;
+
+ case 'd':
+ numvers.stage = developStage;
+
+ break;
+
+ default:
+ goto exit;
+ }
}
- }
-
- exit:
-
- for (i = 0; i < 4; ++i)
- number [i] = stringtobcd (bsnumber [i]);
-
- numvers.majorRev = number [0];
-
- numvers.minorAndBugRev = (number [1] << 4) + number [2];
-
- numvers.nonRelRev = number [3];
-
- *versionnum = numvers;
-
- return (true);
- } /*stringtoversionnum*/
+
+ exit:
+
+ for (i = 0; i < 4; ++i)
+ number [i] = stringtobcd (bsnumber [i]);
+
+ numvers.majorRev = number [0];
+
+ numvers.minorAndBugRev = (number [1] << 4) + number [2];
+
+ numvers.nonRelRev = number [3];
+
+ *versionnum = numvers;
+
+ return (true);
+ } /*stringtoversionnum*/
-boolean filegetprogramversion (bigstring bsversion) {
-
- /*
- 12/19/91 dmb: this routine is here because this is the only file that currently
- knows the format of a 'vers' resource. it would more logically be in file.c
- */
-
- lNumVersion versionnumber;
-
- if (filereadresource (filegetapplicationrnum (), 'vers', 1, nil, sizeof (versionnumber), &versionnumber))
- return (versionnumtostring (versionnumber, bsversion));
-
- setemptystring (bsversion);
-
- return (false);
- } /*filegetprogramversion*/
-
-
-static boolean getshortversionverb (hdltreenode hparam1, tyvaluerecord *v) {
-
- /*
- file.getversion (path): string; return the version number as a string, e.g. "1.0b2".
-
- 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
- */
-
- tyfilespec fs;
- lNumVersion versionnumber;
- bigstring bs;
- short forktype;
- short ctconsumed = 1;
- short ctpositional = 1;
- tyvaluerecord val;
-
- if (!getpathvalue (hparam1, 1, &fs))
+ boolean filegetprogramversion (bigstring bsversion) {
+
+ /*
+ 12/19/91 dmb: this routine is here because this is the only file that currently
+ knows the format of a 'vers' resource. it would more logically be in file.c
+ */
+
+ lNumVersion versionnumber;
+
+ if (filereadresource (filegetapplicationrnum (), 'vers', 1, nil, sizeof (versionnumber), &versionnumber))
+ return (versionnumtostring (versionnumber, bsversion));
+
+ setemptystring (bsversion);
+
return (false);
-
- flnextparamislast = true;
-
- setintvalue (resourcefork, &val); /* defaults to 1 */
+ } /*filegetprogramversion*/
- if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
- return (false);
-
- forktype = val.data.intvalue;
- if (loadresource (&fs, -1, 'vers', 1, nil, sizeof (versionnumber), &versionnumber, forktype))
- versionnumtostring (versionnumber, bs);
- else
- setemptystring (bs);
-
- return (setstringvalue (bs, v));
- } /*getshortversionverb*/
+ static boolean getshortversionverb (hdltreenode hparam1, tyvaluerecord *v) {
+
+ /*
+ file.getversion (path): string; return the version number as a string, e.g. "1.0b2".
+
+ 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
+ */
+
+ tyfilespec fs;
+ lNumVersion versionnumber;
+ bigstring bs;
+ short forktype;
+ short ctconsumed = 1;
+ short ctpositional = 1;
+ tyvaluerecord val;
+
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
+
+ flnextparamislast = true;
+
+ setintvalue (resourcefork, &val); /* defaults to 1 */
+ if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
+ return (false);
+
+ forktype = val.data.intvalue;
-static boolean mungeversionstring (VersRecHndl hvers, bigstring bsversion, boolean fllongvers) {
-
- register byte *p;
- long ixvers;
- long ctvers;
-
- p = (**hvers).shortVersion;
-
- if (fllongvers)
- p += stringlength (p) + 1; /*skip to next contiguous string -- the long version*/
-
- ixvers = p - (byte *) *hvers;
-
- ctvers = stringsize (p);
-
- return (mungehandle ((Handle) hvers, ixvers, ctvers, bsversion, stringsize (bsversion)));
- } /*mungeversionstring*/
+ if (loadresource (&fs, -1, 'vers', 1, nil, sizeof (versionnumber), &versionnumber, forktype))
+ versionnumtostring (versionnumber, bs);
+ else
+ setemptystring (bs);
+
+ return (setstringvalue (bs, v));
+ } /*getshortversionverb*/
-static boolean setshortversionverb (hdltreenode hparam1, tyvaluerecord *v) {
-
- /*
- file.setversion (path): boolean; set the short version string. if a valid version number is specified, set the numeric fields as well
-
- 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
- */
-
- tyfilespec fs;
- bigstring bsversion;
- NumVersion versionnumber;
- VersRecHndl hvers;
- short forktype;
- short ctconsumed = 2;
- short ctpositional = 2;
- tyvaluerecord val;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- if (!getstringvalue (hparam1, 2, bsversion))
- return (false);
-
- flnextparamislast = true;
-
- setintvalue (resourcefork, &val); /* defaults to 1 */
+ static boolean mungeversionstring (VersRecHndl hvers, bigstring bsversion, boolean fllongvers) {
+
+ register byte *p;
+ long ixvers;
+ long ctvers;
+
+ p = (**hvers).shortVersion;
+
+ if (fllongvers)
+ p += stringlength (p) + 1; /*skip to next contiguous string -- the long version*/
+
+ ixvers = p - (byte *) *hvers;
+
+ ctvers = stringsize (p);
+
+ return (mungehandle ((Handle) hvers, ixvers, ctvers, bsversion, stringsize (bsversion)));
+ } /*mungeversionstring*/
- if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
- return (false);
-
- forktype = val.data.intvalue;
- if (!loadresourcehandle (&fs, 'vers', 1, nil, (Handle *) &hvers, forktype))
- if (!newclearhandle (emptyversionsize, (Handle *) &hvers))
+ static boolean setshortversionverb (hdltreenode hparam1, tyvaluerecord *v) {
+
+ /*
+ file.setversion (path): boolean; set the short version string. if a valid version number is specified, set the numeric fields as well
+
+ 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
+ */
+
+ tyfilespec fs;
+ bigstring bsversion;
+ NumVersion versionnumber;
+ VersRecHndl hvers;
+ short forktype;
+ short ctconsumed = 2;
+ short ctpositional = 2;
+ tyvaluerecord val;
+
+ if (!getpathvalue (hparam1, 1, &fs))
return (false);
-
- if (stringtoversionnum (bsversion, &versionnumber)) /*convert to BCD if possible*/
- (**hvers).numericVersion = versionnumber;
-
- if (mungeversionstring (hvers, bsversion, false))
- if (saveresourcehandle (&fs, 'vers', 1, nil, (Handle) hvers, forktype))
- (*v).data.flvalue = true;
-
- disposehandle ((Handle) hvers);
-
- return (true);
- } /*setshortversionverb*/
+
+ if (!getstringvalue (hparam1, 2, bsversion))
+ return (false);
+
+ flnextparamislast = true;
+
+ setintvalue (resourcefork, &val); /* defaults to 1 */
+ if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
+ return (false);
+
+ forktype = val.data.intvalue;
-static boolean getlongversionverb (hdltreenode hparam1, tyvaluerecord *v) {
+ if (!loadresourcehandle (&fs, 'vers', 1, nil, (Handle *) &hvers, forktype))
+ if (!newclearhandle (emptyversionsize, (Handle *) &hvers))
+ return (false);
+
+ if (stringtoversionnum (bsversion, &versionnumber)) /*convert to BCD if possible*/
+ (**hvers).numericVersion = versionnumber;
+
+ if (mungeversionstring (hvers, bsversion, false))
+ if (saveresourcehandle (&fs, 'vers', 1, nil, (Handle) hvers, forktype))
+ (*v).data.flvalue = true;
+
+ disposehandle ((Handle) hvers);
+
+ return (true);
+ } /*setshortversionverb*/
- /*
- file.getfullversion (path): string; return the long version string "1.0b2 \xA9 Copyright 1991 UserLand Software.". need definitions above,
- which don't appear in the Think C headers anywhere
-
- 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
- */
-
- tyfilespec fs;
- lVersRecHndl hvers;
- bigstring bs;
- short forktype;
- short ctconsumed = 1;
- short ctpositional = 1;
- tyvaluerecord val;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- flnextparamislast = true;
-
- setintvalue (resourcefork, &val); /* defaults to 1 */
- if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
- return (false);
-
- forktype = val.data.intvalue;
+ static boolean getlongversionverb (hdltreenode hparam1, tyvaluerecord *v) {
- setemptystring (bs);
-
- if (loadresourcehandle (&fs, 'vers', 1, nil, (Handle *) &hvers, forktype)) {
+ /*
+ file.getfullversion (path): string; return the long version string "1.0b2 \xA9 Copyright 1991 UserLand Software.". need definitions above,
+ which don't appear in the Think C headers anywhere
- register byte *p;
+ 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
+ */
- p = (**hvers).shortVersion;
+ tyfilespec fs;
+ lVersRecHndl hvers;
+ bigstring bs;
+ short forktype;
+ short ctconsumed = 1;
+ short ctpositional = 1;
+ tyvaluerecord val;
- p += stringlength (p) + 1; /*skip to next contiguous string -- the long version*/
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
- copystring (p, bs);
+ flnextparamislast = true;
- disposehandle ((Handle) hvers);
- }
-
- return (setstringvalue (bs, v));
- } /*getlongversionverb*/
+ setintvalue (resourcefork, &val); /* defaults to 1 */
+ if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
+ return (false);
+
+ forktype = val.data.intvalue;
-static boolean setlongversionverb (hdltreenode hparam1, tyvaluerecord *v) {
-
- /*
- file.setversion (path): boolean; set the long version string.
-
- 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
- */
-
- tyfilespec fs;
- bigstring bsversion;
- VersRecHndl hvers;
- short forktype;
- short ctconsumed = 2;
- short ctpositional = 2;
- tyvaluerecord val;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- if (!getstringvalue (hparam1, 2, bsversion))
- return (false);
-
- flnextparamislast = true;
-
- setintvalue (resourcefork, &val); /* defaults to 1 */
+ setemptystring (bs);
+
+ if (loadresourcehandle (&fs, 'vers', 1, nil, (Handle *) &hvers, forktype)) {
+
+ register byte *p;
+
+ p = (**hvers).shortVersion;
+
+ p += stringlength (p) + 1; /*skip to next contiguous string -- the long version*/
+
+ copystring (p, bs);
+
+ disposehandle ((Handle) hvers);
+ }
+
+ return (setstringvalue (bs, v));
+ } /*getlongversionverb*/
- if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
- return (false);
-
- forktype = val.data.intvalue;
- if (!loadresourcehandle (&fs, 'vers', 1, nil, (Handle *) &hvers, forktype))
- if (!newclearhandle (emptyversionsize, (Handle *) &hvers))
+ static boolean setlongversionverb (hdltreenode hparam1, tyvaluerecord *v) {
+
+ /*
+ file.setversion (path): boolean; set the long version string.
+
+ 2005-09-02 creedon: added support for fork parameter, see resources.c: openresourcefile and pushresourcefile
+ */
+
+ tyfilespec fs;
+ bigstring bsversion;
+ VersRecHndl hvers;
+ short forktype;
+ short ctconsumed = 2;
+ short ctpositional = 2;
+ tyvaluerecord val;
+
+ if (!getpathvalue (hparam1, 1, &fs))
return (false);
-
- if (mungeversionstring (hvers, bsversion, true))
- if (saveresourcehandle (&fs, 'vers', 1, nil, (Handle) hvers, forktype))
- (*v).data.flvalue = true;
-
- disposehandle ((Handle) hvers);
-
- return (true);
- } /*setlongversionverb*/
+
+ if (!getstringvalue (hparam1, 2, bsversion))
+ return (false);
+
+ flnextparamislast = true;
+
+ setintvalue (resourcefork, &val); /* defaults to 1 */
+ if (!getoptionalparamvalue (hparam1, &ctconsumed, &ctpositional, BIGSTRING ("\x04""fork"), &val))
+ return (false);
+
+ forktype = val.data.intvalue;
-static boolean getcommentverb (hdltreenode hparam1, tyvaluerecord *v) {
-
- tyfilespec fs;
- bigstring bscomment;
-
- flnextparamislast = true;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- if (!getfilecomment (&fs, bscomment))
- setemptystring (bscomment);
-
- return (setstringvalue (bscomment, v));
- } /*getcommentverb*/
+ if (!loadresourcehandle (&fs, 'vers', 1, nil, (Handle *) &hvers, forktype))
+ if (!newclearhandle (emptyversionsize, (Handle *) &hvers))
+ return (false);
+
+ if (mungeversionstring (hvers, bsversion, true))
+ if (saveresourcehandle (&fs, 'vers', 1, nil, (Handle) hvers, forktype))
+ (*v).data.flvalue = true;
+
+ disposehandle ((Handle) hvers);
+
+ return (true);
+ } /*setlongversionverb*/
-static boolean setcommentverb (hdltreenode hparam1, tyvaluerecord *v) {
-
- tyfilespec fs;
- bigstring bscomment;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- flnextparamislast = true;
-
- if (!getstringvalue (hparam1, 2, bscomment))
- return (false);
-
- return (setbooleanvalue (setfilecomment (&fs, bscomment), v));
- } /*setcommentverb*/
+ static boolean getcommentverb (hdltreenode hparam1, tyvaluerecord *v) {
+
+ tyfilespec fs;
+ bigstring bscomment;
+
+ flnextparamislast = true;
+
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
+
+ if (!getfilecomment (&fs, bscomment))
+ setemptystring (bscomment);
+
+ return (setstringvalue (bscomment, v));
+ } /*getcommentverb*/
-static boolean getlabelverb (hdltreenode hparam1, tyvaluerecord *v) {
-
- //
- // 2006-06-18 creedon: FSRef-ized
- //
-
- tyfilespec fs;
- bigstring bslabel;
-
- flnextparamislast = true;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- ( void ) extendfilespec ( &fs, &fs );
-
- if (!getfilelabel (&fs, bslabel))
- setemptystring (bslabel);
-
- return (setstringvalue (bslabel, v));
-
- } // getlabelverb
+ static boolean setcommentverb (hdltreenode hparam1, tyvaluerecord *v) {
+
+ tyfilespec fs;
+ bigstring bscomment;
+
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
+
+ flnextparamislast = true;
+
+ if (!getstringvalue (hparam1, 2, bscomment))
+ return (false);
+
+ return (setbooleanvalue (setfilecomment (&fs, bscomment), v));
+ } /*setcommentverb*/
-static boolean setlabelverb (hdltreenode hparam1, tyvaluerecord *v) {
+ static boolean getlabelverb (hdltreenode hparam1, tyvaluerecord *v) {
+
+ //
+ // 2006-06-18 creedon: FSRef-ized
+ //
+
+ tyfilespec fs;
+ bigstring bslabel;
+
+ flnextparamislast = true;
+
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
+
+ ( void ) extendfilespec ( &fs, &fs );
+
+ if (!getfilelabel (&fs, bslabel))
+ setemptystring (bslabel);
+
+ return (setstringvalue (bslabel, v));
+
+ } // getlabelverb
- //
- // 2006-06-18 creedon: FSRef-ized
- //
-
- tyfilespec fs;
- bigstring bslabel;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- flnextparamislast = true;
-
- if (!getstringvalue (hparam1, 2, bslabel))
- return (false);
-
- ( void ) extendfilespec ( &fs, &fs );
-
- return (setbooleanvalue (setfilelabel (&fs, bslabel), v));
-
- } // setlabelverb
+ static boolean setlabelverb (hdltreenode hparam1, tyvaluerecord *v) {
-static boolean getlabelindexverb (hdltreenode hparam1, tyvaluerecord *v) {
+ //
+ // 2006-06-18 creedon: FSRef-ized
+ //
+
+ tyfilespec fs;
+ bigstring bslabel;
+
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
+
+ flnextparamislast = true;
+
+ if (!getstringvalue (hparam1, 2, bslabel))
+ return (false);
+
+ ( void ) extendfilespec ( &fs, &fs );
+
+ return (setbooleanvalue (setfilelabel (&fs, bslabel), v));
+
+ } // setlabelverb
- //
- // 2006-06-18 creedon: FSRef-ized
- //
- // 2006-04-24 creedon: created, cribbed from getlabelverb function
- //
-
- tyfilespec fs;
- short ixlabel;
-
- flnextparamislast = true;
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
+ static boolean getlabelindexverb (hdltreenode hparam1, tyvaluerecord *v) {
- ( void ) extendfilespec ( &fs, &fs );
-
- if (!getfilelabelindex (&fs, &ixlabel))
- return (false);
-
- return (setintvalue (ixlabel, v));
-
- } // getlabelindexverb
+ //
+ // 2006-06-18 creedon: FSRef-ized
+ //
+ // 2006-04-24 creedon: created, cribbed from getlabelverb function
+ //
+
+ tyfilespec fs;
+ short ixlabel;
+
+ flnextparamislast = true;
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
-static boolean setlabelindexverb (hdltreenode hparam1, tyvaluerecord *v) {
+ ( void ) extendfilespec ( &fs, &fs );
+
+ if (!getfilelabelindex (&fs, &ixlabel))
+ return (false);
+
+ return (setintvalue (ixlabel, v));
+
+ } // getlabelindexverb
- //
- // 2006-06-18 creedon: FSRef-ized
- //
- // 2006-04-24 creedon: created, cribbed from setlabelverb function
- //
-
- tyfilespec fs;
- short index;
-
- if (!getpathvalue (hparam1, 1, &fs))
- return (false);
-
- flnextparamislast = true;
-
- if (!getintvalue (hparam1, 2, &index))
- return (false);
+
+ static boolean setlabelindexverb (hdltreenode hparam1, tyvaluerecord *v) {
+
+ //
+ // 2006-06-18 creedon: FSRef-ized
+ //
+ // 2006-04-24 creedon: created, cribbed from setlabelverb function
+ //
- ( void ) extendfilespec ( &fs, &fs );
-
- return (setbooleanvalue (setfilelabelindex (&fs, index, true), v));
-
- } // setlabelindexverb
+ tyfilespec fs;
+ short index;
+
+ if (!getpathvalue (hparam1, 1, &fs))
+ return (false);
+
+ flnextparamislast = true;
+
+ if (!getintvalue (hparam1, 2, &index))
+ return (false);
+
+ ( void ) extendfilespec ( &fs, &fs );
+
+ return (setbooleanvalue (setfilelabelindex (&fs, index, true), v));
+
+ } // setlabelindexverb
-static boolean getlabelnamesverb (hdltreenode hparam1, tyvaluerecord *v) {
- #pragma unused (hparam1)
+ static boolean getlabelnamesverb (hdltreenode hparam1, tyvaluerecord *v) {
+ #pragma unused (hparam1)
- /*
- 2006-04-24 creedon: created, cribbed from statusbargetsectionsfunc case of langfunctionvalue function
- */
+ /*
+ 2006-04-24 creedon: created, cribbed from statusbargetsectionsfunc case of langfunctionvalue function
+ */
- bigstring bsarray [8];
- hdllistrecord hlist;
- int ix;
- RGBColor labelcolor;
- short mapfromuserinterfaceindex [8] = {0, 6, 7, 5, 2, 4, 3, 1};
+ bigstring bsarray [8];
+ hdllistrecord hlist;
+ int ix;
+ RGBColor labelcolor;
+ short mapfromuserinterfaceindex [8] = {0, 6, 7, 5, 2, 4, 3, 1};
- for (ix = 0; ix < 8; ++ix)
-
- if (GetLabel (ix, &labelcolor, bsarray [ix]) != noErr)
+ for (ix = 0; ix < 8; ++ix)
+ if (GetLabel (ix, &labelcolor, bsarray [ix]) != noErr)
+
+ return (false);
+
+ if (!opnewlist (&hlist, false))
return (false);
+
+ for (ix = 0; ix < 8; ++ix)
+
+ if (!langpushliststring (hlist, bsarray [mapfromuserinterfaceindex [ix]]))
- if (!opnewlist (&hlist, false))
- return (false);
+ goto getlabelnamesverberror;
- for (ix = 0; ix < 8; ++ix)
+ return (setheapvalue ((Handle) hlist, listvaluetype, v));
+
+ getlabelnamesverberror:
- if (!langpushliststring (hlist, bsarray [mapfromuserinterfaceindex [ix]]))
+ opdisposelist (hlist);
- goto getlabelnamesverberror;
+ return (false);
- return (setheapvalue ((Handle) hlist, listvaluetype, v));
-
- getlabelnamesverberror:
+ } /* getlabelnamesverb */
+
+#endif // MACVERSION
- opdisposelist (hlist);
-
- return (false);
- } /* getlabelnamesverb */
-
-#endif
-
-
static boolean findapplicationverb ( hdltreenode hparam1, tyvaluerecord *v ) {
OSType creator;
@@ -2243,8 +2268,9 @@
return (setstringvalue (bs, v));
} /*getcommentverb*/
-#endif
+#endif // WIN95VERSION
+
/*start of new verbs added by DW, 7/27/91*/
static boolean findfileverb (hdltreenode hparam1, tyvaluerecord *v) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-08 20:22:41
|
Revision: 1734
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1734&view=rev
Author: creecode
Date: 2007-09-08 13:22:43 -0700 (Sat, 08 Sep 2007)
Log Message:
-----------
rollback to previous version, changes to underlying mainResponder search scripts fix problem
Modified Paths:
--------------
ODBs/trunk/mainResponderRoot/mainResponder/search/client/addMessageCallback.fvc
Modified: ODBs/trunk/mainResponderRoot/mainResponder/search/client/addMessageCallback.fvc
===================================================================
--- ODBs/trunk/mainResponderRoot/mainResponder/search/client/addMessageCallback.fvc 2007-09-08 20:15:35 UTC (rev 1733)
+++ ODBs/trunk/mainResponderRoot/mainResponder/search/client/addMessageCallback.fvc 2007-09-08 20:22:43 UTC (rev 1734)
@@ -1,69 +1,6 @@
FrontierVcsFile:1:scpt:mainResponder.search.client.addMessageCallback
on addMessageCallback (adrObject) {
- \xC7Changes
- \xC71/14/06; 9:59:44 AM by TAC
- \xC7reworked, using mainResponder.search.client.index seems severely broken
- \xC7Whenever a DG message is new or changed, this callback gets called.
-
- try { // index message
- local (pta = html.getPageTableAddress ());
-
- \xC7scratchpad.pt = pta^ // for testing
-
- local (adrMessageTable, text, url);
-
- case true {
- defined (pta^.adrEditedMsg) {
- adrMessageTable = pta^.adrEditedMsg};
- defined (pta^.adrNewMsg) {
- adrMessageTable = pta^.adrNewMsg}};
-
- text = string (adrMessageTable^.body);
-
- if defined (adrMessageTable^.alsoListedIn) {
- if adrMessageTable^.alsoListedIn contains "stories" { // could be more robust
- url = pta^.urls^.storyReader + adrMessageTable^.msgNum}}
- else {
- url = pta^.urls^.discussMsgReader + adrMessageTable^.msgNum};
-
- if defined (pta^.search^.flProcessMacros) { // perhaps process macros
- if pta^.search^.flProcessMacros {
- local (oldPta, pt);
-
- new (tableType, @pt);
-
- pt.adrMsgToEdit = adrMessageTable;
-
- try {
- oldPta = html.getPageTableAddress ()};
-
- if oldPta == nil {
- \xC7pt.adrMsgToEdit = adrMsgTable
- pt.adrObject = nil;
- pt.adrSiteRootTable = adrSite;
- pt.glossary = @adrSite^.["#glossary"]}
- else {
- pt.adrObject = oldPta^.adrObject;
- pt.adrSiteRootTable = oldPta^.adrSiteRootTable;
- pt.glossary = oldPta^.glossary};
-
- html.setPageTableAddress (@pt);
-
- text = html.processMacros (text, adrPageTable: @pt);
-
- if oldPta == nil {
- html.deletePageTableAddress ()}
- else {
- html.setPageTableAddress (oldPta)}}};
-
- mainResponder.search.server.storePageForIndexing (adrMessageTable^.subject, url, text, pta^.search^.siteName, pta^.ftpSite^.url, pta^.client, config.mainresponder.search.prefs.flStoreFullText, createdDate: adrMessageTable^.postTime, lastModDate: adrMessageTable^.lastUpdate)};
-
- return (true)};
-
-\xC7bundle // testing
- \xC7html.setPageTableAddress (@scratchpad.pt)
- \xC7
- \xC7addMessageCallback (@scratchpad.pt.adrObject)
- \xC7
- \xC7html.deletePageTableAddress ()
\ No newline at end of file
+ \xC7Whenever a DG message is new or changed, this callback gets called.
+ try {mainResponder.search.client.index (adrObject)};
+ return (true)}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-08 20:15:32
|
Revision: 1733
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1733&view=rev
Author: creecode
Date: 2007-09-08 13:15:35 -0700 (Sat, 08 Sep 2007)
Log Message:
-----------
added template parmeter
Modified Paths:
--------------
ODBs/trunk/mainResponderRoot/mainResponder/discuss/cowSkullLink.fvc
Modified: ODBs/trunk/mainResponderRoot/mainResponder/discuss/cowSkullLink.fvc
===================================================================
--- ODBs/trunk/mainResponderRoot/mainResponder/discuss/cowSkullLink.fvc 2007-09-08 20:14:53 UTC (rev 1732)
+++ ODBs/trunk/mainResponderRoot/mainResponder/discuss/cowSkullLink.fvc 2007-09-08 20:15:35 UTC (rev 1733)
@@ -1,21 +1,33 @@
-FrontierVcsFile:1:scpt:mainResponder.discuss.cowSkullLink
+FrontierVcsFile:3:scpt:mainResponder.discuss.cowSkullLink
-\xC7Changes
- \xC7Thu, 04 Mar 1999 03:04:25 GMT by AR
- \xC7config.mainresponder.urls is no longer referenced - we look at the page table instead
-on cowSkullLink (linetext, msgnum) {
- local (picturelink = mainResponder.discuss.cowSkullImage ());
- local (pta = html.getPageTableAddress ());
- local (url = pta^.responderAttributes.urls^.discussMsgReader);
- local (htmltext = "", indentlevel = 0);
- on add (s) {
- htmltext = htmltext + string.filledString ("\t", indentlevel) + s + "\r"};
- add ("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"); indentlevel++;
- add ("<tr>"); indentlevel++;
- add ("<td>" + linetext + "</td>");
- add ("<td valign=\"top\" width=\"22\">" + "<a href=\"" + url + msgnum + "\">" + picturelink + "</a>" + "</td>");
- add ("</tr>"); indentlevel--;
- add ("</table>"); indentlevel--;
- return (htmltext)};
-\xC7bundle //test code
- \xC7dialog.alert (cowSkullLink ("blah blah blah", 716))
\ No newline at end of file
+on cowSkullLink ( lineText, msgNum, template = nil ) {
+
+ «Changes
+ «9/8/07; 12:59:51 PM by TAC
+ «added template parmeter
+ «3/3/99; 8:04:25 PM by AR
+ «config.mainresponder.urls is no longer referenced - we look at the page table instead
+ «??/??/?? by ???
+ «created
+
+ local ( pta = html.getPageTableAddress ( ) );
+
+ local ( htmlText = "" ); // , indentLevel = 0 )
+ local ( pictureLink = mainResponder.discuss.cowSkullImage ( pta ) );
+ local ( url = pta^.responderAttributes.urls^.discussMsgReader );
+
+ «on add ( s )
+ «htmlText = htmlText + ( string.filledString ( tab, indentLevel ) + s + "\r" );
+
+ if template == nil {
+ template = "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\r<tr>\r<td>\r[[lineText]]\r</td>\r<td valign=\"top\" width=\"22\">\r[[link]]\r</td>\r</tr>\r</table>\r"};
+
+ htmlText = string.replaceAll ( template, "[[lineText]]", lineText );
+ htmlText = string.replaceAll ( htmlText, "[[link]]", "<a href=\"" + url + msgNum + "\">" + pictureLink + "</a>" );
+
+ return ( htmlText )};
+
+«bundle // testing
+ «dialog.alert ( cowSkullLink ( "blah blah blah", 716 ) )
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-08 20:14:53
|
Revision: 1732
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1732&view=rev
Author: creecode
Date: 2007-09-08 13:14:53 -0700 (Sat, 08 Sep 2007)
Log Message:
-----------
if buildObject isn't used to build the pageText then we run it through html.processMacros
messageReader can now be a script
Modified Paths:
--------------
ODBs/trunk/mainResponderRoot/mainResponder/search/client/indexPage.fvc
Modified: ODBs/trunk/mainResponderRoot/mainResponder/search/client/indexPage.fvc
===================================================================
--- ODBs/trunk/mainResponderRoot/mainResponder/search/client/indexPage.fvc 2007-09-08 20:02:59 UTC (rev 1731)
+++ ODBs/trunk/mainResponderRoot/mainResponder/search/client/indexPage.fvc 2007-09-08 20:14:53 UTC (rev 1732)
@@ -1,25 +1,33 @@
-FrontierVcsFile:1:scpt:mainResponder.search.client.indexPage
+FrontierVcsFile:3:scpt:mainResponder.search.client.indexPage
on indexPage (adrObject, adrPageTable, flMsgReader=false, adrDgMsg=nil, adrSiteTable=nil) {
- \xC7This script is called from the high-level mainResponder.search.client.index verb. It should not be called from anywhere else.
- \xC7This script indexes a web page in a website table.
- \xC7Changes:
- \xC710/15/99; 12:29:17 PM by PBS
- \xC7Get the proper created and modified dates for dg messages.
- local (objType = typeOf (adrObject^));
- local (pageText, title, url);
- local (searchTable);
- local (flDatabaseSupportsIndexing);
+ «Changes
+ «5/10/07; 6:11:25 PM by TAC
+ «if buildObject isn't used to build the pageText then we run it through html.processMacros
+ «messageReader can now be a script
+ «10/15/99; 12:29:17 PM by PBS
+ «Get the proper created and modified dates for dg messages.
+ «??/??/?? by ???
+ «Created. This script indexes a web page in a website table.
+ «This script is called from the high-level mainResponder.search.client.index verb. It should not be called from anywhere else.
+ local ( flDatabaseSupportsIndexing, pageText, searchTable, title, url );
+ local ( flProcessMacros = true );
+ local ( objType = typeOf ( adrObject^ ) );
+
new (tableType, @searchTable);
- on getRenderedPageText (adrPage) { //this is called when it's necessary to use html.buildObject to get the page text
- table.emptyTable (adrPageTable);
- html.buildObject (adrPage, adrPageTable); //build the page
- return (true)};
+ on getRenderedPageText ( adrPage ) { // this is called when it's necessary to use html.buildObject to get the page text
+ table.emptyTable ( adrPageTable );
+
+ html.buildObject ( adrPage, adrPageTable ); // build the page
+
+ flProcessMacros = false;
+
+ return ( true )};
- \xC7Once this script is called, there's no question that adrObject points to a valid web page. However, the search engine only knows how to index outlines, wp-text, tables, and scripts. Anything else is not indexed. So first check the type of adrObject to be sure it's valid.
+ «Once this script is called, there's no question that adrObject points to a valid web page. However, the search engine only knows how to index outlines, wp-text, tables, and scripts. Anything else is not indexed. So first check the type of adrObject to be sure it's valid.
bundle { //check the type
local (flValidType = false);
case objType {
@@ -55,7 +63,7 @@
searchTable.server = searchTable.domain;
searchTable.procedure = searchTable.addToIndex};
- \xC7Call the script in the #search table that gets the title and page text.
+ «Call the script in the #search table that gets the title and page text.
bundle {
local (adrScript);
if defined (searchTable.getContent) {
@@ -65,10 +73,10 @@
try {adrScript^ (@searchTable)}}};
if searchTable.title == nil or searchTable.bodyText == nil {
- \xC7wp-text and outline objects are indexed one way, scripts another, and tables yet another way.
+ «wp-text and outline objects are indexed one way, scripts another, and tables yet another way.
if (objType == wpTextType) or (objType == outlineType) {
if not flMsgReader {
- \xC7These types are coerced to a string.
+ «These types are coerced to a string.
pageText = string (adrObject^);
if searchTable.title == nil {
searchTable.title = html.getOneDirective ("title", pageText)}}
@@ -78,28 +86,60 @@
pageText = string (adrDgMsg^.body)}};
if objType == tableType {
- \xC7If there's a msgNum, find the discussion root and get the text of the message.
- \xC7Otherwise, use html.buildObject to get the text of the page that way.
+ «If there's a msgNum, find the discussion root and get the text of the message.
+ «Otherwise, use html.buildObject to get the text of the page that way.
if defined (adrObject^.msgNum) and defined (adrObject^.discussionRoot) { //there's a discussion group message to get
local (adrMsg = mainResponder.news.getMessageTable (adrObject^.discussionRoot, adrObject^.msgNum));
if searchTable.title == nil {
searchTable.title = adrMsg^.subject};
pageText = string (adrMsg^.body)}
else {
- \xC7Use html.buildObject to get the text of the page.
+ «Use html.buildObject to get the text of the page.
pageText = getRenderedPageText (adrObject)}};
if objType == scriptType {
- \xC7Use html.buildObject to get the text of the page.
- getRenderedPageText (adrObject);
- pageText = adrPageTable^.renderedText};
+ if flMsgReader {
+ pageText = string ( adrDgMsg^.body );
+
+ searchTable.title = adrDgMsg^.subject}
+ else {
+ getRenderedPageText ( adrObject ); // use html.buildObject to get the text of the page
+
+ pageText = adrPageTable^.renderedText}};
+ if flProcessMacros {
+ local ( oldPta, pt );
+
+ new ( tableType, @pt );
+
+ try {
+ oldPta = html.getPageTableAddress ( )};
+
+ if oldPta == nil {
+ pt.adrObject = nil;
+ pt.adrSiteRootTable = adrPageTable^.adrSiteRootTable;
+ pt.glossary = @pt.adrSiteRootTable^.[ "#glossary" ]}
+ else {
+ pt.adrObject = oldPta^.adrObject;
+ pt.adrSiteRootTable = oldPta^.adrSiteRootTable;
+ pt.glossary = oldPta^.glossary};
+
+ html.setPageTableAddress ( @pt );
+
+ pageText = html.processMacros ( pageText, adrPageTable: @pt );
+
+ if oldPta == nil {
+ html.deletePageTableAddress ( )}
+ else {
+ html.setPageTableAddress ( oldPta )}};
+
if searchTable.bodyText == nil {
searchTable.bodyText = pageText};
+
if searchTable.title == nil {
searchTable.title = adrPageTable^.title}};
- \xC7It's possible that there's no bodyText or title, even at this point. (Particularly if the page is an address, and the getContent callback didn't fill in those values.) If so, don't index the page, log the failure.
+ «It's possible that there's no bodyText or title, even at this point. (Particularly if the page is an address, and the getContent callback didn't fill in those values.) If so, don't index the page, log the failure.
if searchTable.bodyText == nil {
mainResponder.search.client.logNoIndex (adrObject, "the body text of the page can't be retrieved.");
return (true)};
@@ -111,7 +151,7 @@
local (msgNum = number (nameOf (adrDgMsg^)));
searchTable.url = searchTable.url + "$" + msgNum;
- \xC7PBS 10/15/99: get the proper created and mod dates for this dg message.
+ «PBS 10/15/99: get the proper created and mod dates for this dg message.
searchTable.createdDate = adrDgMsg^.postTime;
if defined (adrDgMsg^.lastUpdate) {
searchTable.lastModDate = adrDgMsg^.lastUpdate}
@@ -120,7 +160,9 @@
mainResponder.search.client.sendPageToServer (@searchTable);
- \xC7Log the fact that we sent this to the server.
+ «Log the fact that we sent this to the server.
mainResponder.search.client.log ("Sent " + adrObject + " to the server for indexing.", adrObject);
- return (true)}
\ No newline at end of file
+ return (true)}
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-08 20:03:08
|
Revision: 1731
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1731&view=rev
Author: creecode
Date: 2007-09-08 13:02:59 -0700 (Sat, 08 Sep 2007)
Log Message:
-----------
minor script formatting tweaks
replace extensions.latinToMac.convert with string.latinToMac
Modified Paths:
--------------
ODBs/trunk/mainResponderRoot/mainResponder/respond.fvc
Modified: ODBs/trunk/mainResponderRoot/mainResponder/respond.fvc
===================================================================
--- ODBs/trunk/mainResponderRoot/mainResponder/respond.fvc 2007-09-07 19:58:11 UTC (rev 1730)
+++ ODBs/trunk/mainResponderRoot/mainResponder/respond.fvc 2007-09-08 20:02:59 UTC (rev 1731)
@@ -1,8 +1,9 @@
-FrontierVcsFile:2:scpt:mainResponder.respond
+FrontierVcsFile:3:scpt:mainResponder.respond
on respond (adrParamTable, fldebug = false) {
+
«Changes
- «2/28/06; 11:21:17 AM by TAC
+ «9/8/07; 12:48:54 PM by TAC
«minor script formatting tweaks
«replace extensions.latinToMac.convert with string.latinToMac
«10/18/05 AM by TAC
@@ -112,8 +113,8 @@
if config.mainresponder.prefs.flProfiling {
local (prefix = "/profile/"); //PBS 10/27/00: prefix changed from /profile to /profile/ -- to avoid conflict with Manila's profiles and any other URL that begins with /profile
«msg (adrParamTable^.path)
- if adrParamTable^.path beginswith prefix {
- adrParamTable^.path = string.delete (adrParamTable^.path, 1, sizeof (prefix));
+ if adrParamTable^.path beginsWith prefix {
+ adrParamTable^.path = string.delete (adrParamTable^.path, 1, sizeOf (prefix));
adrParamTable^.path = "/" + adrParamTable^.path;
script.startProfile (true);
flprofile = true}};
@@ -130,7 +131,7 @@
fldebug = false}
else {
if not defined (config.mainresponder.debugLog) {
- new (tabletype, @config.mainresponder.debugLog)};
+ new (tableType, @config.mainresponder.debugLog)};
adrdebuglog = xml.addtable (@config.mainresponder.debugLog, string.timestring ());
addDebugLog ("paramsIn", adrParamTable^);
addDebugLog ("path", adrParamTable^.path);
@@ -144,14 +145,14 @@
if adrParamTable^.requestHeaders.["User-Agent"] != "Testing in Debugger" {
scratchpad.paramtable = adrParamTable^}}}};
- local (adratts = @adrParamTable^.responderAttributes);
+ local (adrAtts = @adrParamTable^.responderAttributes);
- adratts^ = config.mainresponder.globals;
+ adrAtts^ = config.mainresponder.globals;
on noFolderError (f) {
scriptError ("There is no folder or object database named \"" + (file.filefrompath (f) - file.getpathchar ()) + "\" in the folder \"" + file.folderfrompath (f) + "\".")};
- on gatherAttributes (adrtable) { //copy all #attributes from the table into adratts^
+ on gatherAttributes (adrtable) { //copy all #attributes from the table into adrAtts^
«this does something different from html.buildPageTable
«it adds them one level at a time, we don't care how we got here
«in html.buildPageTable we pop all the way out to the top of the website.
@@ -161,11 +162,11 @@
if defined (adrsecurityscript^) { //great! the sysop is using a cool feature
callScript (adrsecurityscript, {}, adrParamTable)}; //scriptError to kill request
- local (i, ct = sizeof (adrtable^), adritem, name);
+ local (i, ct = sizeOf (adrtable^), adritem, name);
for i = 1 to ct {
adritem = @adrtable^ [i];
name = nameof (adritem^);
- if not (name beginswith "#") {
+ if not (name beginsWith "#") {
break};
name = string.delete (name, 1, 1); //pop off the #
case string.lower (name) {
@@ -176,38 +177,38 @@
«if defined (objectName) //PBS 12/16/99: commented out to fix a bug where URLs would have repeated elements, such as /foo/foo rather than /foo. (Was: make sure objectName is defined.)
«url = url + objectName
if defined (path) { //make sure path is defined
- if sizeof (path) > 0 {
- if not (url endswith "/") {
+ if sizeOf (path) > 0 {
+ if not (url endsWith "/") {
url = url + "/"};
url = url + path}};
«dialog.alert (url)
scriptError ("!redirect " + url)}};
- case typeof (adritem^) {
- tabletype {
+ case typeOf (adritem^) {
+ tableType {
if string.lower (name) == "prefs" {
- local (i, ct = sizeof (adritem^), adrprefsitem, name);
+ local (i, ct = sizeOf (adritem^), adrprefsitem, name);
for i = 1 to ct {
adrprefsitem = @adritem^ [i];
name = nameof (adrprefsitem^);
- if name beginswith "#" {
+ if name beginsWith "#" {
name = string.delete (name, 1, 1)};
- adratts^.[name] = adrprefsitem^}}
+ adrAtts^.[name] = adrprefsitem^}}
else { //copy the address of the table
try {delete (@adrAtts^.[name])}; //work around an apparent kernel bug
- adratts^.[name] = adritem}};
- outlinetype;
- scripttype;
- menubartype;
- binarytype;
- wptexttype {
- adratts^.[name] = adritem}} //copy the address
+ adrAtts^.[name] = adritem}};
+ outlineType;
+ scriptType;
+ menubarType;
+ binaryType;
+ wptextType {
+ adrAtts^.[name] = adritem}} //copy the address
else {
- adratts^.[name] = adritem^}}};
+ adrAtts^.[name] = adritem^}}};
on attMustBeTrue (attname) {
on attError () {
scriptError ("The attribute \"" + attname + "\" must be true.")};
- local (adratt = @adratts^.[attname]);
+ local (adratt = @adrAtts^.[attname]);
if defined (adratt^) {
if not adratt^ { //it's false
attError ()}}
@@ -216,7 +217,7 @@
return (true)};
on attIsTrue (attname) {
- local (adratt = @adratts^.[attname]);
+ local (adratt = @adrAtts^.[attname]);
if defined (adratt^) {
return (boolean (adratt^))}
else {
@@ -232,8 +233,8 @@
add ("<directory>"); indentlevel++;
fileloop (f in folder) {
local (name = file.filefrompath (f));
- if name endswith pc {
- name = string.delete (name, sizeof (name), 1)};
+ if name endsWith pc {
+ name = string.delete (name, sizeOf (name), 1)};
add ("<file>"); indentlevel++;
add ("<name>" + name + "</name>");
bundle { //add type
@@ -241,7 +242,7 @@
if file.isfolder (f) {
mimeType = "folder"}
else {
- if name endswith ".root" {
+ if name endsWith ".root" {
mimetype = "application/x-frontier-database"}
else {
local (objectType = file.type (f));
@@ -278,17 +279,17 @@
on serveObject (adr) {
bundle { //set up the URLs table
- if not defined (adratts^.urls) { //there's no #urls server attribute
- adratts^.urls = @config.mainresponder.urls}};
+ if not defined (adrAtts^.urls) { //there's no #urls server attribute
+ adrAtts^.urls = @config.mainresponder.urls}};
mainResponder.members.checkMembership (adr, adrParamTable); //scriptErrors if redirecting
- if (adratts^.flrender) and (typeof (adr^) != binaryType) { //pass it thru the website framework
+ if (adrAtts^.flrender) and (typeOf (adr^) != binaryType) { //pass it thru the website framework
local (adrcacheitem = nil);
- if defined (adratts^.flRenderingCache) and (adratts^.flRenderingCache) { //this page can be cached
+ if defined (adrAtts^.flRenderingCache) and (adrAtts^.flRenderingCache) { //this page can be cached
local (adrcache = mainResponder.cache.getCacheTable ());
adrcacheitem = @adrcache^.[string (adr)];
if defined (adrcacheitem^) {
if timeModified (adrcacheitem) >= timeModified (adr) { //the cache is still good
- if typeof (adr^) != scripttype {
+ if typeOf (adr^) != scriptType {
«PBS 8/25/99: call a callback that can decide whether or not to serve this from the cache.
adrParamTable^.flServeFromCache = true;
if defined (config.mainResponder.callbacks.serveFromCache) {
@@ -307,7 +308,7 @@
adrParamTable^.responseBody = html.buildObject (adr, adrParamTable)};
if adrcacheitem != nil { //caching is enabled
if not defined (adrcacheitem^) {
- new (tabletype, adrcacheitem)};
+ new (tableType, adrcacheitem)};
adrcacheitem^.hits = 0;
wp.newtextobject (adrParamTable^.responseBody, @adrcacheitem^.text);
fileMenu.saveMyRoot (adrcacheitem)};
@@ -315,32 +316,32 @@
if defined (adrredirecturl^) {
scriptError ("!redirect " + adrredirecturl^)}}
else {
- case typeof (adr^) {
- scripttype {
+ case typeOf (adr^) {
+ scriptType {
serveScript (adr)}}
else {
- if defined (adratts^.rawTextPreformatted) and (adratts^.rawTextPreformatted) {
+ if defined (adrAtts^.rawTextPreformatted) and (adrAtts^.rawTextPreformatted) {
local (s = string.replaceall (string (adr^), "<", "<"));
adrParamTable^.responseBody = "<html><body><pre>\r" + s + "\r</pre></body></html>"}
else {
adrParamTable^.responseBody = string (adr^)};
adrParamTable^.responseHeaders.["Content-Type"] = mainResponder.getODBMimeType (adr);
local (moddate = timeModified (adr));
- if typeof (moddate) == booleantype {
+ if typeOf (moddate) == booleantype {
moddate = clock.now ();
try { //JES 9/16/04: use mod date of parent table
- if typeOf (parentOf (adr^)^) == tabletype {
+ if typeOf (parentOf (adr^)^) == tableType {
moddate = timeModified (parentOf (adr^))}}};
adrParamTable^.responseHeaders.["Last-Modified"] = date.netStandardString (moddate)}}};
on folderToHTML (folder) {
attMustBeTrue ("allowDirectoryListings");
bundle { //set up the URLs table; Fri, 12 Mar 1999 00:50:44 GMT by AR
- if not defined (adratts^.urls) { //there's no #urls server attribute
- adratts^.urls = @config.mainresponder.urls}};
+ if not defined (adrAtts^.urls) { //there's no #urls server attribute
+ adrAtts^.urls = @config.mainresponder.urls}};
local (adrscript = @mainResponder.folderToHTML);
- if defined (adratts^.folderToHTML) {
- adrscript = @adratts^.folderToHTML;
+ if defined (adrAtts^.folderToHTML) {
+ adrscript = @adrAtts^.folderToHTML;
if typeOf (adrScript^) == addressType { //PBS 8/11/99: if adrScript^ is an address, de-reference
adrScript = adrScript^}};
return (adrscript^ (folder, adrParamTable))};
@@ -349,29 +350,29 @@
gatherAttributes (adrtable);
attMustBeTrue ("allowDirectoryListings");
bundle { //set up the URLs table; Fri, 12 Mar 1999 00:50:40 GMT by AR
- if not defined (adratts^.urls) { //there's no #urls server attribute
- adratts^.urls = @config.mainresponder.urls}};
+ if not defined (adrAtts^.urls) { //there's no #urls server attribute
+ adrAtts^.urls = @config.mainresponder.urls}};
local (adrscript = @mainResponder.tableToHTML);
- if defined (adratts^.tableToHTML) {
- adrscript = @adratts^.tableToHTML;
+ if defined (adrAtts^.tableToHTML) {
+ adrscript = @adrAtts^.tableToHTML;
if typeOf (adrScript^) == addressType { //PBS 8/11/99: if adrScript^ is an address, de-reference
adrScript = adrScript^}};
return (adrscript^ (adrtable, adrParamTable))};
on openRootFile (f) {
if not window.isOpen (f) {
- if file.filefrompath (f) beginswith "#" {
+ if file.filefrompath (f) beginsWith "#" {
scriptError ("Can't open the file \"" + f + "\" because its name begins with a pound-sign.")};
fileMenu.open (f, hidden:true);
if config.mainResponder.prefs.flLogDatabaseOpens {
«you may want to add this file to user.databases
local (adrtable = @system.temp.mainResponder.databaseOpensLog);
if not defined (adrtable^) {
- new (tabletype, adrtable)};
+ new (tableType, adrtable)};
adrtable^.[f] = clock.now ()}}};
on checkPoundsign (name) { //scriptErrors if the name begins with a #
- if name beginswith "#" {
+ if name beginsWith "#" {
scriptError ("Can't serve \"" + name + "\" because its name begins with a pound-sign.")}};
on tableDive (nomad, name) {
@@ -438,7 +439,7 @@
if not file.exists (f) {
noFolderError (f)}};
if file.isfolder (f) {
- if not (f endswith pc) {
+ if not (f endsWith pc) {
f = f + pc};
return (filespec (f + name))}
else { //it might be a guest database
@@ -449,7 +450,7 @@
on pathMustEndWithSlash () {
local (s = string.trimWhiteSpace (adrParamTable^.path));
- if not (s endswith "/") {
+ if not (s endsWith "/") {
scriptError ("!redirect " + s + "/")}};
on pathMustNotEndWithSlash () { //PBS 7/30/99: tables rendered as pages must not end with a slash
@@ -464,7 +465,7 @@
if typeOf (adrTable) == fileSpecType {
return (serveFolder (adrTable))}}; //it's really a filespec
- local (defaults = list (adratts^.defaultDirectoryItems), item, adritem, flnotfound = true);
+ local (defaults = list (adrAtts^.defaultDirectoryItems), item, adritem, flnotfound = true);
if defined (adrTable^.["#defaultDirectoryItems"]) { //Fri, 12 Mar 1999 01:24:15 GMT by AR
defaults = list (adrTable^.["#defaultDirectoryItems"])};
@@ -481,7 +482,7 @@
break}};
if flnotfound {
- if defined (adratts^.renderTableWith) {
+ if defined (adrAtts^.renderTableWith) {
pathMustNotEndWithSlash (); //PBS 7/30/99: this table is a page: it must not end in a slash
serveObject (adrtable)}
else {
@@ -491,9 +492,9 @@
on serveFolder (folder) {
pathMustEndWithSlash (); //possibly redirect
local (pc = file.getpathchar ());
- if not (folder endswith pc) {
+ if not (folder endsWith pc) {
folder = folder + pc};
- local (defaults = list (adratts^.defaultDirectoryItems), item, f, flnotfound = true);
+ local (defaults = list (adrAtts^.defaultDirectoryItems), item, f, flnotfound = true);
for item in defaults {
f = folder + item;
if file.exists (f) {
@@ -540,7 +541,7 @@
local (i, ct = sizeOf (adrGlobals^), adritem);
for i = 1 to ct {
adritem = @adrGlobals^ [i];
- adratts^.[nameof (adritem^)] = adritem^};
+ adrAtts^.[nameof (adritem^)] = adritem^};
return (true)};
on initialXmlSiteTreeDive (adrTable) { //PBS 06/10/00: XML siteTree support, broken out because used in two places -- this routine dives into the XML structure, first re-compiling if necessary
@@ -570,7 +571,7 @@
mainResponder.parseMultipart (adrParamTable)} //parse multipart form into adrParamTable^.postArgs
else {
local (adrtable = @adrParamTable^.postArgs);
- new (tabletype, adrtable);
+ new (tableType, adrtable);
webserver.parseArgs (adrParamTable^.requestBody, adrtable)}}};
local (nomad);
@@ -662,7 +663,7 @@
bundle { //based on type, initialize nomad
on setnomad (adrdomain) {
case typeOf (adrdomain^) {
- tabletype {
+ tableType {
if defined (adrDomain^.siteTree) { //PBS 06/09/00: handle XML siteTree tables
nomad = initialXmlSiteTreeDive (adrDomain);
return (true)}
@@ -672,10 +673,10 @@
if defined (adrdomain^.globals) { //add the elements of this table to the responder attributes table
gatherGlobals (@adrDomain^.globals); //PBS 06/09/00: code below was broken out, since it was used in multiple places
};
- «local (i, ct = sizeof (adrdomain^.globals), adritem)
+ «local (i, ct = sizeOf (adrdomain^.globals), adritem)
«for i = 1 to ct
«adritem = @adrdomain^.globals [i]
- «adratts^.[nameof (adritem^)] = adritem^
+ «adrAtts^.[nameof (adritem^)] = adritem^
setnomad (@adrdomain^.doctree)}; //recurse
stringtype {
local (s = adrdomain^);
@@ -683,8 +684,8 @@
«scriptError ("!redirect " + s + adrParamTable^.path)
scriptError ("!redirect " + s + string.nthField (adrParamTable^.firstLine, ' ', 2))}; //JES 07/04/00: if the path contains path args, make sure they're part of the URL redirected to
nomad = filespec (adrdomain^)};
- addresstype;
- filespectype {
+ addressType;
+ filespecType {
nomad = adrdomain^}}
else {
scriptError ("Server configuration error. The type of a domain doctree must be either table, string or filespec.")}};
@@ -707,27 +708,27 @@
bundle { //leave nomad pointing to the object to be served
if not flCallbackParsedPath { //PBS 8/25/99: if callback evaluated path, skip this bundle
- local (stack = {}, path, objectname);
+ local (stack = {}, path, objectName);
«path = string.lower (string.urlDecode (adrParamTable^.path))
if system.environment.isMac { //JES 9/16/04: handle high-ascii in URL properly
path = string.lower (string.latinToMac (string.urlDecode (adrParamTable^.path)))}
else { //not MacOS -- just do string.lower, without character translation
path = string.lower (string.urlDecode (adrParamTable^.path))};
- if path beginswith "/" {
+ if path beginsWith "/" {
path = string.delete (path, 1, 1)};
bundle { //when Frontier is running behind a web server like WebSTAR or IIS, ignore .wsf extensions
if defined (adrParamTable^.wsfSuffixRequired) {
if adrParamTable^.wsfSuffixRequired {
if string.lower (path) endsWith ".wsf" {
- path = string.mid (path, 1, sizeof (path) - 4)}}}};
- while sizeof (path) > 0 {
+ path = string.mid (path, 1, sizeOf (path) - 4)}}}};
+ while sizeOf (path) > 0 {
local (flsystemwebsite = false); //PBS 10/25/99: moved this declaration so it gets set false for the next part of the path. Otherwise URLs inside the system website won't work.
- objectname = string.nthField (path, '/', 1);
+ objectName = string.nthField (path, '/', 1);
bundle { //check for system websites, like controlPanel
- if sizeof (stack) == 0 { //check for special mainResponder-implemented websites
+ if sizeOf (stack) == 0 { //check for special mainResponder-implemented websites
flsystemwebsite = false;
- case string.lower (objectname) {
+ case string.lower (objectName) {
"controlpanel" {
if defined (config.mainResponder.prefs.flControlPanel) and config.mainResponder.prefs.flControlPanel { //PBS 10/25/99: flControlPanel may not exist; check that it exists before checking its value
nomad = @mainResponder.controlPanel;
@@ -750,8 +751,8 @@
nomad = initialXmlSiteTreeDive (nomad)};
flsystemwebsite = true}}}}}}};
if not flsystemwebsite {
- if objectname == ".." { //pop the stack
- local (sizestack = sizeof (stack));
+ if objectName == ".." { //pop the stack
+ local (sizestack = sizeOf (stack));
if sizestack == 0 {
scriptError ("Can't surface beyond the root of the website.")};
nomad = stack [sizestack];
@@ -767,16 +768,22 @@
bundle { //PBS 01/07/02: don't serve files or folders whose name begins with a dot.
if objectName beginsWith "." {
scriptError ("Can't process objects with names beginning with a dot.")}};
- case typeof (nomad) {
- addresstype {
- while (typeof (nomad^) == addresstype) {nomad = nomad^};
- case typeof (nomad^) {
- tabletype { //diving into a table
- nomad = tableDive (nomad, objectname)};
- filespectype { //nomad now becomes a filespec
- nomad = folderDive (nomad^, objectname)}}};
- filespectype {
- nomad = folderDive (nomad, objectname)}}};
+
+ case typeOf ( nomad ) {
+ addressType {
+ while ( typeOf ( nomad^ ) == addressType ) {
+ nomad = nomad^};
+
+ case typeOf ( nomad^ ) {
+ tableType { // diving into a table
+ nomad = tableDive ( nomad, objectName )};
+ filespecType { // nomad now becomes a filespec
+ nomad = folderDive ( nomad^, objectName )};
+ stringType { // relative path
+ nomad = folderDive ( fileSpec ( nomad^ ), objectName )}}};
+ filespecType {
+ nomad = folderDive ( nomad, objectName )}}};
+
if fldebug {
addDebugLog ("step", nomad)};
@@ -790,7 +797,7 @@
adrParamTable^.remainingPath = path;
break};
- path = string.delete (path, 1, sizeof (objectname) + 1);
+ path = string.delete (path, 1, sizeOf (objectName) + 1);
stack = stack + nomad}}
else { //PBS 8/25/99: callback handled path parsing, but we need to gather attributes
if typeOf (nomad) == addressType {
@@ -799,13 +806,13 @@
else {
gatherAttributes (parentOf (nomad^))}}}};
- bundle { //serve the object nomad points to
+ bundle { // serve the object nomad points to
on serveFilespec (nomad) {
if file.exists (nomad) {
if file.isFolder (nomad) {
serveFolder (nomad)}
else {
- if string.lower (nomad) endswith ".root" {
+ if string.lower (nomad) endsWith ".root" {
openRootFile (nomad);
serveAddress (@[nomad])}
else {
@@ -817,7 +824,7 @@
nomad = @[f];
serveAddress (nomad)}
else {
- if tryError beginswith "!" { //it's a redirect, rethrow it
+ if tryError beginsWith "!" { //it's a redirect, rethrow it
scriptError (tryError)};
on error () {
noFolderError (nomad)};
@@ -825,21 +832,22 @@
if file.exists (f) {
serveFile (f)}
else {
- if string.lower (nomad) endswith ".xml" { //try to serve it as XML
- local (f = string.delete (nomad, sizeof (nomad) - 3, 4)); //pop off the .xml
+ if string.lower (nomad) endsWith ".xml" { //try to serve it as XML
+ local (f = string.delete (nomad, sizeOf (nomad) - 3, 4)); //pop off the .xml
if not file.exists (f) {
error ()};
serveAsXml (f)}
else {
error ()}}}}};
+
on serveAddress (nomad) {
- case typeof (nomad^) {
- addresstype {
+ case typeOf (nomad^) {
+ addressType {
serveAddress (nomad^)};
- filespectype {
+ filespecType {
serveFileSpec (nomad^)};
- scripttype {
- if adratts^.flrender {
+ scriptType {
+ if adrAtts^.flRender {
serveObject (nomad)}
else {
if attIsTrue ("allowScriptsToRun") {
@@ -849,14 +857,15 @@
local (s = string.replaceall (string (nomad^), "<", "<"));
«local (s = mainResponder.neuterText (string (nomad^), false, true))
adrParamTable^.responseBody = "<html><body><pre>\r" + s + "\r</pre></body></html>"}}}};
- tabletype {
+ tableType {
serveTable (nomad)}}
else {
serveObject (nomad)}};
- case typeof (nomad) {
- filespectype {
- serveFilespec (nomad)};
- addresstype {
+
+ case typeOf ( nomad ) {
+ filespecType {
+ serveFilespec ( nomad )};
+ addressType {
serveAddress (nomad)}}};
bundle { //compare If-Modified-Since with, maybe we can avoid serving it
@@ -899,7 +908,7 @@
add ("<blockquote>"); indentlevel++;
add ("<table cellspacing=\"5\">"); indentlevel++;
add ("<tr><td><b>" + "Procedure" + "</b></td><td><b>" + "Ticks" + "</b></td></tr>");
- for i = sizeof (info) downto 1 {
+ for i = sizeOf (info) downto 1 {
adritem = @info [i];
add ("<tr><td><font size=\"-1\">" + nameof (adritem^) + "</font></td><td><center><font size=\"-1\">" + adritem^ + "</font></center></td></tr>")};
add ("</table>"); indentlevel--;
@@ -930,7 +939,7 @@
local (s = tryError);
if s [1] == "!" { //it's a faked error
local (command = string.nthfield (s, ' ', 1));
- local (args = string.delete (s, 1, sizeof (command) + 1));
+ local (args = string.delete (s, 1, sizeOf (command) + 1));
case command {
"!redirect" {
adrParamTable^.code = 302; //non-permanent redirect
@@ -1018,7 +1027,7 @@
«tickspercall = double (clock.ticks () - ticks) / ctloops
«config.mainresponder.prefs.flDebug = olddebug
«if not defined (mainResponder.data.timingOutline)
- «new (outlinetype, @mainResponder.data.timingOutline)
+ «new (outlineType, @mainResponder.data.timingOutline)
«edit (@mainResponder.data.timingOutline)
«op.firstsummit ()
«op.insert (tickspercall + " ticks per call at " + string.timeString (), up)
@@ -1026,4 +1035,6 @@
«local (params = table.getcursoraddress ()^) //put cursor on param table you want to run
«params.requestHeaders.["User-Agent"] = "Testing in Debugger"
«try {delete (@params.paramtable.responderAtts)}
- «respond (@params)
\ No newline at end of file
+ «respond (@params)
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-07 19:58:08
|
Revision: 1730
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1730&view=rev
Author: creecode
Date: 2007-09-07 12:58:11 -0700 (Fri, 07 Sep 2007)
Log Message:
-----------
replacing easyQuery file with easyQuery.fvc
changed method for checking if maxRows is a number
check if queryId is not 0
define result
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery.fvc
Removed Paths:
-------------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery
Deleted: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery 2007-09-07 19:54:31 UTC (rev 1729)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery 2007-09-07 19:58:11 UTC (rev 1730)
@@ -1,27 +0,0 @@
-FrontierVcsFile:2:scpt:system.verbs.builtins.sqlite.easyQuery
-
-on easyQuery ( dbID, queryString, maxRows=0 ) {
- «Changes
- «10/10/06; 11:44:50 AM by DG
- «created
- local ( compiledQuery, dataset = {}, row, rowCount = 0 );
- on isNum ( s ) {
- for i = 1 to string.length ( s ) {
- ch = string.mid ( s, i, 1 );
- if ( ch < '0' ) or ( ch > '9' ) {
- return false}};
- return true};
- if not isNum ( maxRows ) {
- scriptError ( "sqlite.easyQuery requires a numeric value for maxRows." )};
- compiledQuery = sqlite.compileQuery ( dbID, queryString );
- loop {
- result = sqlite.stepQuery ( compiledQuery );
- if result != 100 { // SQLite's code for more rows
- break};
- ++rowCount;
- if ( maxRows > 0 ) and ( rowCount > maxRows ) {
- break};
- row = sqlite.getRow ( compiledQuery );
- dataset[rowCount] = row};
- sqlite.clearQuery ( compiledQuery );
- return dataset}
\ No newline at end of file
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery.fvc 2007-09-07 19:58:11 UTC (rev 1730)
@@ -0,0 +1,40 @@
+FrontierVcsFile:3:scpt:system.verbs.builtins.sqlite.easyQuery
+
+on easyQuery ( databaseId, query, maxRows = 0 ) {
+ «Changes
+ «8/27/07; 8:05:14 PM by TAC
+ «changed method for checking if maxRows is a number
+ «check if queryId is not 0
+ «define result
+ «10/10/06; 11:44:50 AM by DG
+ «created
+
+ local ( queryId, dataSet = { }, result, row, rowCount = 0 );
+
+ bundle { // is maxRows a number?
+ try {
+ number ( maxRows )}
+ else {
+ scriptError ( "sqlite.easyQuery requires a numeric value for maxRows." )}};
+
+ queryId = sqlite.compileQuery ( databaseId, query );
+
+ if queryId > 0 {
+ loop {
+ result = sqlite.stepQuery ( queryId );
+
+ if result != 100 { // SQLite's code for more rows
+ break};
+
+ if ( maxRows > 0 ) and ( ++rowCount > maxRows ) {
+ break};
+
+ row = sqlite.getRow ( queryId );
+
+ dataSet [ rowCount ] = row};
+
+ sqlite.clearQuery ( queryId )};
+
+ return ( dataSet )}
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/easyQuery.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-07 19:54:27
|
Revision: 1729
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1729&view=rev
Author: creecode
Date: 2007-09-07 12:54:31 -0700 (Fri, 07 Sep 2007)
Log Message:
-----------
replacing open file with open.fvc
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open.fvc
Removed Paths:
-------------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open
Deleted: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open 2007-09-07 19:50:15 UTC (rev 1728)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open 2007-09-07 19:54:31 UTC (rev 1729)
@@ -1,7 +0,0 @@
-FrontierVcsFile:2:scpt:system.verbs.builtins.sqlite.open
-
-on open ( x ) {
- «Changes
- «10/10/06; 11:44:50 AM by DG
- «created
- kernel ( sqlite.open )}
\ No newline at end of file
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open.fvc 2007-09-07 19:54:31 UTC (rev 1729)
@@ -0,0 +1,12 @@
+FrontierVcsFile:3:scpt:system.verbs.builtins.sqlite.open
+
+on open ( f ) {
+ «Changes
+ «8/25/07; 9:47:16 AM by TAC
+ «changed paramater from x to f, more in keeping with other file related calls
+ «10/10/06; 11:44:50 AM by DG
+ «created
+
+ kernel ( sqlite.open )}
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/open.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-07 19:50:12
|
Revision: 1728
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1728&view=rev
Author: creecode
Date: 2007-09-07 12:50:15 -0700 (Fri, 07 Sep 2007)
Log Message:
-----------
added sqlite.setColumnBlob and sqlite.getLastInsertRowId verbs
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/getLastInsertRowId.fvc
ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/getLastInsertRowId.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/getLastInsertRowId.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/getLastInsertRowId.fvc 2007-09-07 19:50:15 UTC (rev 1728)
@@ -0,0 +1,11 @@
+FrontierVcsFile:3:scpt:system.verbs.builtins.sqlite.getLastInsertRowId
+
+on getLastInsertRowId ( databaseId ) {
+
+ «Changes
+ «9/1/07; 1:46:14 PM by TAC
+ «created
+
+ kernel ( sqlite.getLastInsertRowId )}
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/getLastInsertRowId.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc 2007-09-07 19:50:15 UTC (rev 1728)
@@ -0,0 +1,11 @@
+FrontierVcsFile:3:scpt:system.verbs.builtins.sqlite.setColumnBlob
+
+on setColumnBlob ( queryId, columnNumber, binaryAddress ) {
+
+ «Changes
+ «9/7/07; 11:23:45 AM by TAC
+ «created
+
+ kernel ( sqlite.setColumnBlob )}
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/sqlite/setColumnBlob.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-09-07 19:09:06
|
Revision: 1727
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1727&view=rev
Author: creecode
Date: 2007-09-07 12:09:05 -0700 (Fri, 07 Sep 2007)
Log Message:
-----------
added sqlite.setColumnBlob and sqlite.getLastInsertRowId verbs added
sqlitegetrowverb function now returns BLOBs as binary values and SQLITE_NULL type as nil value
in sqlitegetcolumntextverb function added column_text NULL value check, scriptError on error
Modified Paths:
--------------
Frontier/trunk/Common/headers/langsqlite.h
Frontier/trunk/Common/resources/Mac/kernelverbs.r
Frontier/trunk/Common/resources/Win32/kernelverbs.rc
Frontier/trunk/Common/source/langsqlite.c
Modified: Frontier/trunk/Common/headers/langsqlite.h
===================================================================
--- Frontier/trunk/Common/headers/langsqlite.h 2007-08-02 17:15:12 UTC (rev 1726)
+++ Frontier/trunk/Common/headers/langsqlite.h 2007-09-07 19:09:05 UTC (rev 1727)
@@ -1,69 +1,75 @@
-
-/* $Id: langsqlite.h,v 1.1.2.1 2006/03/24 01:31:35 davidgewirtz Exp $ */
-
-/******************************************************************************
-
- UserLand Frontier(tm) -- High performance Web content management,
- object database, system-level and Internet scripting environment,
- including source code editing and debugging.
-
- Copyright (C) 1992-2004 UserLand Software, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-******************************************************************************/
-
-/* prototypes */
-
-extern boolean sqliteopenverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-03-15 gewirtz */
-
-extern boolean sqlitecloseverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-03-17 gewirtz */
-
-extern boolean sqlitecompilequeryverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqliteclearqueryverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqliteresetqueryverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-08-31 gewirtz */
-
-extern boolean sqlitestepqueryverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-08-31 gewirtz */
-
-extern boolean sqlitegetcolumncountverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqlitegetcolumntypeverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqlitegetcolumnintverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqlitegetcolumndoubleverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqlitegetcolumntextverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqlitegetcolumnnameverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-18 gewirtz */
-
-extern boolean sqlitegetcolumnverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-20 gewirtz */
-
-extern boolean sqlitegetrowverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-08-31 gewirtz */
-
-extern boolean sqlitegeterrormessageverb (hdltreenode, tyvaluerecord *, bigstring); /* 2006-04-20 gewirtz */
-
-extern boolean sqliteinitverbs (void); /* 2006-03-15 gewirtz */
-
-/* boolean hmacmd5 (unsigned char *, int, unsigned char *, int, unsigned char *);*/ /* 2006-03-05 creedon */
-
-/* boolean hmacsha1 (unsigned char *, int, unsigned char *, int, unsigned char *);*/ /* 2006-03-12 creedon */
-
-/* SQLITE MESSAGES */
-#define SQLITE_COLUMN_ERROR_0 "\xe9""SQLite column error. Frontier uses a base-1 index. Columns must be specified with 1 indicating the first column. This is different from the SQLite API, which requires that columns must be specified with 0 indicating the first column."
-#define SQLITE_COLUMN_ERROR_MAX "\x50""SQLite column error. An attempt was made to access a column that does not exist."
-#define SQLITE_COLUMN_ERROR_UNDEFINED "\x29""SQLite returned an undefined column type."
\ No newline at end of file
+
+/* $Id: langsqlite.h,v 1.1.2.1 2006/03/24 01:31:35 davidgewirtz Exp $ */
+
+/******************************************************************************
+
+ UserLand Frontier(tm) -- High performance Web content management,
+ object database, system-level and Internet scripting environment,
+ including source code editing and debugging.
+
+ Copyright (C) 1992-2004 UserLand Software, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+******************************************************************************/
+
+
+// prototypes
+
+extern boolean sqliteopenverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-03-15 gewirtz
+
+extern boolean sqlitecloseverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-03-17 gewirtz
+
+extern boolean sqlitecompilequeryverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqliteclearqueryverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqliteresetqueryverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-08-31 gewirtz
+
+extern boolean sqlitestepqueryverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-08-31 gewirtz
+
+extern boolean sqlitegetcolumncountverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqlitegetcolumntypeverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqlitegetcolumnintverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqlitegetcolumndoubleverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqlitegetcolumntextverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqlitegetcolumnnameverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-18 gewirtz
+
+extern boolean sqlitegetcolumnverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-20 gewirtz
+
+extern boolean sqlitegetrowverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-08-31 gewirtz
+
+extern boolean sqlitegeterrormessageverb (hdltreenode, tyvaluerecord *, bigstring); // 2006-04-20 gewirtz
+
+extern boolean sqliteinitverbs (void); // 2006-03-15 gewirtz
+
+extern boolean sqlitesetcolumnblobverb ( hdltreenode, tyvaluerecord *, bigstring ); // 2007-08-25 creedon
+
+extern boolean getlastinsertrowidverb ( hdltreenode, tyvaluerecord *, bigstring ); // 2007-08-28 creedon
+
+
+// SQLITE MESSAGES
+
+#define SQLITE_COLUMN_ERROR_0 "\xe9""SQLite column error. Frontier uses a base-1 index. Columns must be specified with 1 indicating the first column. This is different from the SQLite API, which requires that columns must be specified with 0 indicating the first column."
+#define SQLITE_COLUMN_ERROR_MAX "\x50""SQLite column error. An attempt was made to access a column that does not exist."
+#define SQLITE_COLUMN_ERROR_UNDEFINED "\x29""SQLite returned an undefined column type."
+#define SQLITE_COLUMN_ERROR_ROW_OR_COLUMN "\x31" "SQLite invalid row or column number out of range." // 2007-08-25 creedon
+#define SQLITE_PARAMETER_ERROR_COUNT "\x1b" "SQLite parameter error. An attempt was made to access a parameter that does not exist." // 2007-08-26 creedon
+
Modified: Frontier/trunk/Common/resources/Mac/kernelverbs.r
===================================================================
--- Frontier/trunk/Common/resources/Mac/kernelverbs.r 2007-08-02 17:15:12 UTC (rev 1726)
+++ Frontier/trunk/Common/resources/Mac/kernelverbs.r 2007-09-07 19:09:05 UTC (rev 1727)
@@ -1132,41 +1132,45 @@
}
};
-resource 'EFP#' (idcryptverbs, "crypt") { /* 2006-03-07 creedon: crypt verbs */
+resource 'EFP#' (idcryptverbs, "crypt") { // 2006-03-07 creedon: crypt verbs
{
- "crypt", false, {
-
- "whirlpool",
- "hmacMD5",
- "MD5",
- "SHA1",
- "hmacSHA1",
+ "crypt", false, {
+
+ "whirlpool",
+ "hmacMD5",
+ "MD5",
+ "SHA1",
+ "hmacSHA1"
+
+ }
}
- }
-};
+ };
-resource 'EFP#' (idsqliteverbs, "sqlite") { /* 2006-08-31 gewirtz sqlite verbs */
- {
- "sqlite", false, {
-
- "open",
- "compileQuery",
- "clearQuery",
- "resetQuery",
- "stepQuery",
- "getColumnCount",
- "getColumnType",
- "getColumnInt",
- "getColumnDouble",
- "getColumnText",
- "getColumnName",
- "getColumn",
- "getRow",
- "getErrorMessage",
- "close" // 2006-09-07 - kw - renamed from getClose
- }
- }
-};
+resource 'EFP#' (idsqliteverbs, "sqlite") { // 2006-08-31 gewirtz sqlite verbs
+ {
+ "sqlite", false, {
+
+ "open",
+ "compileQuery",
+ "clearQuery",
+ "resetQuery",
+ "stepQuery",
+ "getColumnCount",
+ "getColumnType",
+ "getColumnInt",
+ "getColumnDouble",
+ "getColumnText",
+ "getColumnName",
+ "getColumn",
+ "getRow",
+ "getErrorMessage",
+ "close", // 2006-09-07 - kw - renamed from getClose
+ "setColumnBlob", // 2007-08-25 creedon
+ "getLastInsertRowId" // 2007-08-28 creedon
+
+ }
+ }
+ };
resource 'EFP#' (idmysqlverbs, "mysql") { /* 2007-04-09 gewirtz mysql verbs */
{
Modified: Frontier/trunk/Common/resources/Win32/kernelverbs.rc
===================================================================
--- Frontier/trunk/Common/resources/Win32/kernelverbs.rc 2007-08-02 17:15:12 UTC (rev 1726)
+++ Frontier/trunk/Common/resources/Win32/kernelverbs.rc 2007-09-07 19:09:05 UTC (rev 1727)
@@ -1066,11 +1066,11 @@
"sqrt\0"
END
-1025 /* cryptverbs */ EFP DISCARDABLE
+1025 /* cryptverbs */ EFP DISCARDABLE // 2006-03-07 creedon: crypt verbs
BEGIN
1, // Number of "blocks" in this resource
- "crypt\0", // Function Processor name
- false, // Window required
+ "crypt\0", // Function Processor name
+ false, // Window required
5, // Count of verbs
"whirlpool\0",
"hmacMD5\0",
@@ -1084,22 +1084,24 @@
1, // Number of "blocks" in this resource
"sqlite\0", // Function Processor name
false, // Window required
- 15, // Count of verbs
- "open\0",
- "compileQuery\0",
- "clearQuery\0",
- "resetQuery\0",
- "stepQuery\0",
- "getColumnCount\0",
- "getColumnType\0",
- "getColumnInt\0",
- "getColumnDouble\0",
- "getColumnText\0",
- "getColumnName\0",
- "getColumn\0",
- "getRow\0",
- "getErrorMessage\0",
- "close\0"
+ 17, // Count of verbs
+ "open\0",
+ "compileQuery\0",
+ "clearQuery\0",
+ "resetQuery\0",
+ "stepQuery\0",
+ "getColumnCount\0",
+ "getColumnType\0",
+ "getColumnInt\0",
+ "getColumnDouble\0",
+ "getColumnText\0",
+ "getColumnName\0",
+ "getColumn\0",
+ "getRow\0",
+ "getErrorMessage\0",
+ "close\0",
+ "setColumnBlob\0", // 2007-08-25 creedon
+ "getLastInsertRowId\0" // 2007-08-28 creedon
END
1027 /* mysqlverbs */ EFP DISCARDABLE
Modified: Frontier/trunk/Common/source/langsqlite.c
===================================================================
--- Frontier/trunk/Common/source/langsqlite.c 2007-08-02 17:15:12 UTC (rev 1726)
+++ Frontier/trunk/Common/source/langsqlite.c 2007-09-07 19:09:05 UTC (rev 1727)
@@ -101,16 +101,24 @@
getrowfunc,
geterrormessagefunc,
closefunc,
+ setcolumnblobfunc,
+ getlastinsertrowidfunc,
ctsqliteverbs
} tysqliteverbtoken;
-static boolean sqlitefunctionvalue (short token, hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) {
+static boolean sqlitefunctionvalue ( short token, hdltreenode hparam1,
+ tyvaluerecord *vreturned, bigstring bserror ) {
+
+ //
+ // 2007-08-28 creedon: added setcolumnblobfunc case
+ //
+ // added getlastinsertrowidfunc case
+ //
+ // 2006-03-15 gewirtz: created, cribbed from langcrypt, itself cribbed from
+ // htmlfunctionvalue
+ //
- /*
- 2006-03-15 gewirtz: created, cribbed from langcrypt, itself cribbed from htmlfunctionvalue
- */
-
hdltreenode hp1 = hparam1;
tyvaluerecord *v = vreturned;
@@ -192,13 +200,24 @@
return (sqlitecloseverb (hp1, v, bserror));
} /* closefunc */
-
+
+ case setcolumnblobfunc:
+
+ return ( sqlitesetcolumnblobverb ( hp1, v, bserror ) );
+
+ case getlastinsertrowidfunc:
+
+ return ( getlastinsertrowidverb ( hp1, v, bserror ) );
+
default:
+
getstringlist (langerrorlist, unimplementedverberror, bserror);
return (false);
- } /* switch */
- } /* sqlitefunctionvalue */
+
+ } // switch
+
+ } // sqlitefunctionvalue
boolean sqliteinitverbs (void) {
@@ -642,6 +661,7 @@
return setlongvalue (returnCode, vreturned);
+
} /* sqlitegetcolumncountverb */
@@ -738,56 +758,70 @@
boolean sqlitegetcolumntextverb (hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) {
+
+ //
+ // 2007-09-07 creedon: added column_text NULL check
+ //
+
+ //
+ // sqlite.getColumnText(queryid, columnNumber)
+ //
+ // Action: Retrieve the value of the specified text-type column
+ // Params: a query id and the number of the column (1 base)
+ // Returns: an SQLite result code
+ // Notes: do not pass the opened database ID across threads.
+ //
+ // SQLite docs: http://www.sqlite.org/capi3ref.html#sqlite3_column_text.
+ //
+
long columnNumber;
sqlite3_stmt *queryid;
Handle returnH;
const unsigned char *column_text;
int columnCount;
-
- /*
- sqlite.getColumnText(queryid, columnNumber)
-
- Action: Retrieve the value of the specified text-type column
- Params: a query id and the number of the column (1 base)
- Returns: an SQLite result code
- Notes: do not pass the opened database ID across threads.
-
- SQLite docs: http://www.sqlite.org/capi3ref.html#sqlite3_column_text.
- */
-
+
if (!getlongvalue (hparam1, 1, (long *) &queryid)) /* Get the long value, which becomes the pline pointer */
return (false);
-
+
flnextparamislast = true; /* makes sure Frontier throws an error if more than one param is passed */
-
+
/* Enter the verb, convert the param to null-terminated string */
if (!getlongvalue (hparam1, 2, &columnNumber))
return (false);
-
+
/* Validate the column number */
if (columnNumber < 1) {
langerrormessage (SQLITE_COLUMN_ERROR_0);
return (false);
- }
+ }
+
columnCount = sqlite3_column_count(queryid);
if (columnNumber > columnCount) {
langerrormessage (SQLITE_COLUMN_ERROR_MAX);
return (false);
- }
-
+ }
+
/* Process the SQLite sequence */
--columnNumber; /* Frontier uses base 1, but SQLite uses a base of 0 for its column numbering */
column_text = sqlite3_column_text(queryid, (int) columnNumber);
-
+
+ if ( column_text == NULL ) {
+
+ langerrormessage ( SQLITE_COLUMN_ERROR_ROW_OR_COLUMN );
+
+ return ( false );
+
+ }
+
/* Exit the verb, converting column_name back to Frontier handle */
if (!newfilledhandle ((ptrvoid) column_text, strlen (column_text), &returnH))
return false; /* Allocation failed */
-
+
return (setheapvalue (returnH, stringvaluetype, vreturned));
+
+ } // sqlitegetcolumntextverb
-} /* sqlitegetcolumntextverb */
-
boolean sqlitegetcolumnverb (hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) {
long columnNumber; /* column number */
sqlite3_stmt *queryid; /* query id */
@@ -881,6 +915,22 @@
boolean sqlitegetrowverb (hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) {
+
+ //
+ // 2007-09-07 creedon: SQLITE_BLOB case now returns a binary value
+ //
+ // SQLITE_NULL case now returns nil value instead of 0
+ //
+
+ //
+ // sqlite.getRow(queryid)
+ //
+ // Action: Retrieve a row as a list
+ // Params: a query id
+ // Returns: an SQLite result code
+ // Notes: do not pass the opened database ID across threads.
+ //
+
long columnNumber; /* column number */
int columnCount; /* number of columns */
sqlite3_stmt *queryid; /* query id */
@@ -890,93 +940,132 @@
const unsigned char *column_text;
hdllistrecord hlist;
tyvaluerecord val;
-
- /*
- sqlite.getRow(queryid)
-
- Action: Retrieve a row as a list
- Params: a query id
- Returns: an SQLite result code
- Notes: do not pass the opened database ID across threads.
- this implementation does not support blobs. If a blob column is requested, 0 is returned.
- */
-
+
flnextparamislast = true; /* makes sure Frontier throws an error if more than one param is passed */
-
+
if (!getlongvalue (hparam1, 1, (long *) &queryid)) /* Get the long value, which becomes the queryid pointer */
return (false);
-
+
/* Process the SQLite sequence */
columnCount = sqlite3_column_count(queryid); /* first, figure out how many columns we've got */
-
+
if (columnCount == 0) {
- langerrormessage ("\x2F""SQLite.getRow requires a minimum of one column.");
+
+ langerrormessage ("\x2F""SQLite.getRow requires a minimum of one column.");
+
return (false);
- }
+ }
if (!opnewlist (&hlist, false)) /* fail out if we can't create the list */
return (false);
-
+
for (columnNumber = 0 ; columnNumber < columnCount ; ++columnNumber) {
-
+
returnCode = sqlite3_column_type(queryid, (int) columnNumber);
-
+
switch(returnCode) {
-
+
case SQLITE_INTEGER: {
+
returnCode = sqlite3_column_int(queryid, (int) columnNumber);
+
if (!langpushlistlong (hlist, (long) returnCode))
goto error;
+
break;
- }
+
+ }
+
case SQLITE_FLOAT: {
+
returnDouble = sqlite3_column_double(queryid, (int) columnNumber);
+
if (!setdoublevalue (returnDouble, &val))
goto error;
+
if (!langpushlistval (hlist, nil, &val))
goto error;
+
break;
- }
+
+ }
+
case SQLITE_TEXT: {
+
column_text = sqlite3_column_text(queryid, (int) columnNumber);
/* Exit the verb, converting column_name back to Frontier handle */
if (!newfilledhandle ((ptrvoid) column_text, strlen (column_text), &returnH))
return false; /* Allocation failed */
+
if (!setheapvalue (returnH, stringvaluetype, &val)) /* convert handle to value */
goto error;
+
if (!langpushlistval (hlist, nil, &val))
goto error;
+
break;
- }
+
+ }
+
case SQLITE_BLOB: {
- if (!langpushlistlong (hlist, (long) 0))
+
+ Handle h;
+ OSType type;
+
+ if ( ! newfilledhandle ( ( ptrvoid ) sqlite3_column_blob (
+ queryid, columnNumber ), sqlite3_column_bytes (
+ queryid, columnNumber ), &h ) )
+ return ( false );
+
+ pullfromhandle ( h, 0L, sizeof ( type ), &type );
+
+ setbinaryvalue ( h, type, &val );
+
+ if ( ! langpushlistval ( hlist, NULL, &val ) )
goto error;
+
break;
- }
+
+ }
+
case SQLITE_NULL: {
- if (!langpushlistlong (hlist, (long) 0))
+
+ initvalue ( &val, novaluetype );
+
+ if ( ! langpushlistval ( hlist, NULL, &val ) )
goto error;
+
break;
- }
+
+ }
+
default: {
+
/* SQLite spec says sqlite3_column_type only returns the above 5 types. But,
just in case it lied, this time we return a 0, so the rest of the fields
can be read properly. */
+
if (!langpushlistlong (hlist, (long) 0))
goto error;
- }
- } /* switch */
- } /* for */
-
+
+ }
+
+ } // switch
+
+ } // for
+
return (setheapvalue ((Handle) hlist, listvaluetype, vreturned));
-
+
error: {
+
opdisposelist (hlist);
+
return (false);
- }
+
+ }
-} /* sqlitegetrow */
+ } // sqlitegetrow
boolean sqlitegeterrormessageverb (hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) {
@@ -1011,3 +1100,94 @@
} /* sqlitegeterrormessageverb */
+
+boolean sqlitesetcolumnblobverb ( hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror ) {
+
+ //
+ // 2007-08-25 creedon: created, cribbed from sqlitegetcolumntextverb
+ //
+
+ //
+ // sqlite.setColumnBlob ( queryId, parameterIndex, binaryAddress )
+ //
+ // Action: Set the value of the specified blob-type column
+ // Params: a query id and the number of the column (1 base)
+ // Returns: an SQLite result code
+ // Notes: do not pass the opened database ID across threads.
+ //
+ // SQLite docs: < http://www.sqlite.org/capi3ref.html#sqlite3_bind_blob >
+ //
+
+ Handle h;
+ int parameterCount, returnCode;
+ long parameterIndex;
+ sqlite3_stmt *queryid;
+
+ if ( ! getlongvalue ( hparam1, 1, ( long * ) &queryid ) ) // Get the long value, which becomes the pline pointer
+ return ( false );
+
+ if ( ! getlongvalue ( hparam1, 2, ¶meterIndex ) )
+ return ( false );
+
+ if ( parameterIndex < 1 ) { // validate the parameter index
+
+ langerrormessage ( SQLITE_PARAMETER_ERROR_COUNT );
+
+ return ( false );
+
+ }
+
+ parameterCount = sqlite3_bind_parameter_count ( queryid );
+
+ if ( parameterCount > parameterIndex ) {
+
+ langerrormessage ( SQLITE_PARAMETER_ERROR_COUNT );
+
+ return ( false );
+
+ }
+
+ flnextparamislast = true;
+
+ if ( ! getbinaryvalue ( hparam1, 3, true, &h ) )
+ return ( false );
+
+ returnCode = sqlite3_bind_blob ( queryid, parameterIndex, *h,
+ gethandlesize ( h ), SQLITE_STATIC );
+
+ return ( setlongvalue ( returnCode, vreturned ) );
+
+ } // sqlitegetcolumntextverb
+
+
+boolean getlastinsertrowidverb ( hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror ) {
+
+ //
+ // 2007-08-28 creedon: created, cribbed from sqlitegetcolumntextverb
+ //
+
+ //
+ // sqlite.getLastInsertRowId ( queryId )
+ //
+ // Action: Get row id for the most recent insert operation
+ // Params: a query id
+ // Returns: a row id number
+ // Notes: do not pass the opened database ID across threads.
+ //
+ // SQLite docs: < http://www.sqlite.org/capi3ref.html#sqlite3_last_insert_rowid >
+ //
+
+ sqlite3 *db; // the SQLite database handle
+ sqlite_int64 rowid;
+
+ flnextparamislast = true;
+
+ if ( ! getlongvalue ( hparam1, 1, ( long * ) &db ) ) // Get the long value, which becomes the db pointer
+ return ( false );
+
+ rowid = sqlite3_last_insert_rowid ( db );
+
+ return ( setlongvalue ( rowid, vreturned ) );
+
+ } // getlastinsertrowidverb
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-08-02 17:15:12
|
Revision: 1726
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1726&view=rev
Author: creecode
Date: 2007-08-02 10:15:12 -0700 (Thu, 02 Aug 2007)
Log Message:
-----------
fix for crash in file.putFileDialog verb when path is empty
fix for crash in file.new verb when path is empty
Modified Paths:
--------------
Frontier/trunk/Common/source/file.c
Frontier/trunk/Common/source/fileops.c
Frontier/trunk/Common/source/filepath.c
Modified: Frontier/trunk/Common/source/file.c
===================================================================
--- Frontier/trunk/Common/source/file.c 2007-07-29 19:18:51 UTC (rev 1725)
+++ Frontier/trunk/Common/source/file.c 2007-08-02 17:15:12 UTC (rev 1726)
@@ -904,24 +904,30 @@
#ifdef MACVERSION
- static OSErr FSRefGetName ( const FSRef *fsRef, CFStringRef *name ) {
+ static OSErr FSRefGetName ( const FSRef *fsr, CFStringRef *name ) {
//
// the caller must dispose of the CFString
//
+ // 2007-08-01 creedon: changed variable fsRef to fsr to reduce
+ // confusion with FSRef definition
+ //
// 2006-07-06 creedon: created
//
-
+
HFSUniStr255 hname;
- OSErr err = FSGetCatalogInfo ( fsRef, kFSCatInfoNone, NULL, &hname, NULL, NULL );
-
- *name = CFStringCreateWithCharacters ( kCFAllocatorDefault, hname.unicode, hname.length );
-
+ OSErr err = FSGetCatalogInfo ( fsr, kFSCatInfoNone, NULL, &hname,
+ NULL, NULL );
+
+ if ( err == noErr )
+ *name = CFStringCreateWithCharacters ( kCFAllocatorDefault,
+ hname.unicode, hname.length );
+
return ( err );
} // FSRefGetName
-
-
+
+
boolean CFStringRefToStr255 ( CFStringRef input, StringPtr output ) {
//
@@ -960,14 +966,14 @@
return ( true );
} // HFSUniStr255ToStr255
-
-
+
+
boolean FSRefGetNameStr255 ( const FSRef *fsRef, Str255 bsname ) {
-
+
//
// 2006-07-06 creedon; created
//
-
+
CFStringRef csr;
OSErr err = FSRefGetName ( fsRef, &csr );
@@ -976,12 +982,12 @@
if ( csr == NULL )
return ( false );
-
+
if ( ! CFStringGetPascalString ( csr, bsname, 256, kCFStringEncodingMacRoman ) )
return ( false );
-
+
CFRelease ( csr );
-
+
return ( true );
} // FSRefGetNameStr255
Modified: Frontier/trunk/Common/source/fileops.c
===================================================================
--- Frontier/trunk/Common/source/fileops.c 2007-07-29 19:18:51 UTC (rev 1725)
+++ Frontier/trunk/Common/source/fileops.c 2007-08-02 17:15:12 UTC (rev 1726)
@@ -148,7 +148,7 @@
setoserrorparam ( bs );
- #endif
+ #endif // MACVERSION
#ifdef WIN95VERSION
@@ -3458,44 +3458,54 @@
boolean newfile ( const ptrfilespec fs, OSType creator, OSType filetype ) {
//
+ // 2007-08-01 creedon: if path is NULL oserror
+ //
+ // set err to bdNamErr by default
+ //
// 2006-06-18 creedon: for Mac, FSRef-ized
//
-
+
#ifdef MACVERSION
HFSUniStr255 name;
- OSErr err;
+ OSErr err = bdNamErr;
setfserrorparam ( fs );
- CFStringRefToHFSUniStr255 ( ( *fs ).path, &name );
+ if ( ( *fs ).path != NULL ) {
- err = FSCreateFileUnicode ( &( *fs ).fsref, name.length, name.unicode, kFSCatInfoNone, NULL, &( *fs ).fsref, NULL );
-
+ CFStringRefToHFSUniStr255 ( ( *fs ).path, &name );
+
+ err = FSCreateFileUnicode ( &( *fs ).fsref, name.length,
+ name.unicode, kFSCatInfoNone, NULL, &( *fs ).fsref, NULL );
+ }
+
return ( ! oserror ( err ) );
#endif
-
+
#ifdef WIN95VERSION
HANDLE f;
char fn[300];
-
+
copystring (fsname (fs), fn);
nullterminate (fn);
- f = CreateFile (stringbaseaddress(fn), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW,
- FILE_ATTRIBUTE_NORMAL, NULL);
-
+ f = CreateFile (stringbaseaddress(fn), GENERIC_READ | GENERIC_WRITE,
+ FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
+
if (f == INVALID_HANDLE_VALUE) {
+
+ winfileerror (fs);
- winfileerror (fs);
-
return (false);
+
}
-
+
verify (CloseHandle (f));
+
return (true);
#endif
Modified: Frontier/trunk/Common/source/filepath.c
===================================================================
--- Frontier/trunk/Common/source/filepath.c 2007-07-29 19:18:51 UTC (rev 1725)
+++ Frontier/trunk/Common/source/filepath.c 2007-08-02 17:15:12 UTC (rev 1726)
@@ -590,34 +590,38 @@
} // setfsfile
-boolean getfsfile (const ptrfilespec fs, bigstring bsfile) {
+boolean getfsfile ( const ptrfilespec fs, bigstring bsfile ) {
//
+ // 2007-08-01 creedon: check FSRefGetNameStr255 return false if not true
+ //
// 2006-06-18 creedon: for Mac, FSRef-ized
//
-
+
#ifdef MACVERSION
if ( ( *fs ).path != NULL ) {
-
+
if ( CFStringRefToStr255 ( ( *fs ).path, bsfile ) )
return ( true );
}
else {
- FSRefGetNameStr255 ( &( *fs ).fsref, bsfile );
+
+ if ( ! FSRefGetNameStr255 ( &( *fs ).fsref, bsfile ) )
+ return ( false );
}
-
- if (stringlength ( bsfile ) > 0)
- return (true);
+
+ if ( stringlength ( bsfile ) > 0 )
+ return ( true );
long vnum;
getfsvolume ( fs, &vnum );
-
+
return ( filegetvolumename ( vnum, bsfile ) );
#endif
-
+
#ifdef WIN95VERSION
lastword ((ptrstring) fs -> fullSpecifier, '\\', bsfile);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-07-29 19:18:48
|
Revision: 1725
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1725&view=rev
Author: creecode
Date: 2007-07-29 12:18:51 -0700 (Sun, 29 Jul 2007)
Log Message:
-----------
added window.setQuickScript verb
Added Paths:
-----------
ODBs/trunk/frontierRoot/system/verbs/builtins/window/setQuickScript.fvc
Added: ODBs/trunk/frontierRoot/system/verbs/builtins/window/setQuickScript.fvc
===================================================================
--- ODBs/trunk/frontierRoot/system/verbs/builtins/window/setQuickScript.fvc (rev 0)
+++ ODBs/trunk/frontierRoot/system/verbs/builtins/window/setQuickScript.fvc 2007-07-29 19:18:51 UTC (rev 1725)
@@ -0,0 +1,11 @@
+FrontierVcsFile:3:scpt:system.verbs.builtins.window.setQuickScript
+
+on setQuickScript ( s ) {
+
+ «Changes
+ «7/28/07; 2:32:33 PM by TAC
+ «created
+
+ kernel ( window.setquickscript )}
+
+
Property changes on: ODBs/trunk/frontierRoot/system/verbs/builtins/window/setQuickScript.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-07-29 18:59:50
|
Revision: 1724
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1724&view=rev
Author: creecode
Date: 2007-07-29 11:59:49 -0700 (Sun, 29 Jul 2007)
Log Message:
-----------
No log message.
Modified Paths:
--------------
ODBs/trunk/docServerRoot/docServerData/formats/outline/ubase/23title.fvc
Modified: ODBs/trunk/docServerRoot/docServerData/formats/outline/ubase/23title.fvc
===================================================================
--- ODBs/trunk/docServerRoot/docServerData/formats/outline/ubase/23title.fvc 2007-07-29 18:59:31 UTC (rev 1723)
+++ ODBs/trunk/docServerRoot/docServerData/formats/outline/ubase/23title.fvc 2007-07-29 18:59:49 UTC (rev 1724)
@@ -1,3 +1,5 @@
-FrontierVcsFile:2:TEXT:docServerData.formats.outline.ubase.["#title"]
+FrontierVcsFile:3:TEXT:docServerData.formats.outline.ubase.["#title"]
-Ubase Verbs
\ No newline at end of file
+uBase Verbs
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-07-29 18:59:29
|
Revision: 1723
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1723&view=rev
Author: creecode
Date: 2007-07-29 11:59:31 -0700 (Sun, 29 Jul 2007)
Log Message:
-----------
added window.setQuickScript verb
Added Paths:
-----------
ODBs/trunk/docServerRoot/docServerData/formats/outline/window/setQuickScript.fvc
Added: ODBs/trunk/docServerRoot/docServerData/formats/outline/window/setQuickScript.fvc
===================================================================
--- ODBs/trunk/docServerRoot/docServerData/formats/outline/window/setQuickScript.fvc (rev 0)
+++ ODBs/trunk/docServerRoot/docServerData/formats/outline/window/setQuickScript.fvc 2007-07-29 18:59:31 UTC (rev 1723)
@@ -0,0 +1,18 @@
+FrontierVcsFile:3:optx:docServerData.formats.outline.window.setQuickScript
+
+Syntax
+ window.setQuickScript ( s )
+Params
+ s is a string
+Action
+ Set the script of Frontier's Quick Script window.
+Returns
+ True if the script of the Quick Script window is successfully set, otherwise false.
+Examples
+ window.setQuickScript ( "\"" + clock.now ( ) + "\"" )
+ // true
+Notes
+ This verb does not open the Quick Script window nor bring it to the front.
+
+
+
Property changes on: ODBs/trunk/docServerRoot/docServerData/formats/outline/window/setQuickScript.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-07-29 18:44:38
|
Revision: 1722
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1722&view=rev
Author: creecode
Date: 2007-07-29 11:44:39 -0700 (Sun, 29 Jul 2007)
Log Message:
-----------
added window.setQuickScript verb
Modified Paths:
--------------
Frontier/trunk/Common/headers/command.h
Frontier/trunk/Common/headers/miniwindow.h
Frontier/trunk/Common/resources/Mac/kernelverbs.r
Frontier/trunk/Common/resources/Win32/kernelverbs.rc
Frontier/trunk/Common/source/command.c
Frontier/trunk/Common/source/miniwindow.c
Frontier/trunk/Common/source/shellwindowverbs.c
Modified: Frontier/trunk/Common/headers/command.h
===================================================================
--- Frontier/trunk/Common/headers/command.h 2007-07-28 21:42:34 UTC (rev 1721)
+++ Frontier/trunk/Common/headers/command.h 2007-07-29 18:44:39 UTC (rev 1722)
@@ -25,15 +25,19 @@
******************************************************************************/
+
#define commandinclude
-/*prototypes*/
+// prototypes
-//extern cmdprocessstarted (void) ;
+// extern cmdprocessstarted (void) ;
-//extern cmdprocesskilled (void);
+// extern cmdprocesskilled (void);
extern boolean startcmddialog (void);
extern boolean cmdstart (void);
+
+extern boolean cmdsetstring ( Handle ); // 2007-07-25 creedon
+
Modified: Frontier/trunk/Common/headers/miniwindow.h
===================================================================
--- Frontier/trunk/Common/headers/miniwindow.h 2007-07-28 21:42:34 UTC (rev 1721)
+++ Frontier/trunk/Common/headers/miniwindow.h 2007-07-29 18:44:39 UTC (rev 1722)
@@ -129,7 +129,7 @@
} tyminirecord, *ptrminirecord, **hdlminirecord;
-/*globals*/
+// globals
extern WindowPtr miniwindow;
@@ -138,7 +138,7 @@
extern hdlminirecord minidata;
-/*prototypes*/
+// prototypes
extern boolean minisetstring (short, Handle);
@@ -158,6 +158,5 @@
extern boolean ministart (short);
+extern boolean minireloadstrings ( short ); // 2007-07-27 creedon
-
-
Modified: Frontier/trunk/Common/resources/Mac/kernelverbs.r
===================================================================
--- Frontier/trunk/Common/resources/Mac/kernelverbs.r 2007-07-28 21:42:34 UTC (rev 1721)
+++ Frontier/trunk/Common/resources/Mac/kernelverbs.r 2007-07-29 18:44:39 UTC (rev 1722)
@@ -764,9 +764,11 @@
"gettitle",
"settitle",
"about",
- "quicktime", /*7.0b4 PBS: QuickTime Player window*/
+ "quicktime", // 7.0b4 PBS: QuickTime Player window
"getfile",
- "isreadonly", /*7.0b6 PBS: is a window read-only*/
+ "isreadonly", // 7.0b6 PBS: is a window read-only
+ "setquickscript" // 2007-07-25 creedon
+
}
}
};
Modified: Frontier/trunk/Common/resources/Win32/kernelverbs.rc
===================================================================
--- Frontier/trunk/Common/resources/Win32/kernelverbs.rc 2007-07-28 21:42:34 UTC (rev 1721)
+++ Frontier/trunk/Common/resources/Win32/kernelverbs.rc 2007-07-29 18:44:39 UTC (rev 1722)
@@ -701,7 +701,7 @@
1, // Number of "blocks" in this resource
"window\0", // Function Processor Name
true, // Window required
- 30, // Count of verbs
+ 31, // Count of verbs
"isopen\0",
"open\0",
"isfront\0",
@@ -732,6 +732,7 @@
"about\0",
"getfile\0",
"isreadonly\0",
+ "setquickscript\0" // 2007-07-27 creedon
END
@@ -1075,7 +1076,7 @@
"hmacMD5\0",
"MD5\0",
"SHA1\0",
- "hmacSHA1\0",
+ "hmacSHA1\0"
END
1026 /* sqliteverbs */ EFP DISCARDABLE
Modified: Frontier/trunk/Common/source/command.c
===================================================================
--- Frontier/trunk/Common/source/command.c 2007-07-28 21:42:34 UTC (rev 1721)
+++ Frontier/trunk/Common/source/command.c 2007-07-29 18:44:39 UTC (rev 1722)
@@ -43,53 +43,59 @@
#include "command.h"
-
#define cmdtextitem 1
-
static hdlprocessrecord quickscriptprocess = nil;
+static boolean cmdsavestring ( short stringnumber, Handle htext ) {
-static boolean cmdsavestring (short stringnumber, Handle htext) {
-#pragma unused(stringnumber)
-
- /*
- the cmd dialog only has one string, so we ignore the stringnumber param.
+ #pragma unused(stringnumber)
- set the script string in the cancoondata record, for saving -- so we have
- a permanent copy of the last script he wrote across invocations of the
- program.
+ //
+ // the cmd dialog only has one string, so we ignore the stringnumber param.
+ //
+ // set the script string in the cancoondata record, for saving -- so we
+ // have a permanent copy of the last script he wrote across invocations of
+ // the program.
+ //
+ // 2004-12-03 creedon, aradke: bug fix for hscriptstring being NULL
+ //
+ // 5.0d14 dmb: hscriptstring is now a text handle, not a hdlstring.
+ //
+ // 1993-01-21 dmb: don't set superglobals manually anymore
+ //
- 1/21/93 dmb: don't set superglobals manually anymore
+ register hdlcancoonrecord hc;
- 5.0d14 dmb: hscriptstring is now a text handle, not a hdlstring.
- */
+ Handle h;
- Handle h; /* 2004-12-03 creedon - temporary handle */
- register hdlcancoonrecord hc;
+ assert ( cancoonglobals != nil );
- assert (cancoonglobals != nil);
+ hc = cancoonglobals; // copy into register
- hc = cancoonglobals; /*copy into register*/
+ if ( ! equalhandles ( htext, ( **hc ).hscriptstring ) ) {
- if (!equalhandles (htext, (**hc).hscriptstring)) {
-
- if ((**hc).hscriptstring == nil) { /* 2004-12-03 creedon, aradke */
- copyhandle (htext, &h);
- (**hc).hscriptstring = h;
+ if ( ( **hc ).hscriptstring == NULL ) {
+
+ copyhandle ( htext, &h );
+
+ ( **hc ).hscriptstring = h;
+
}
else
- copyhandlecontents (htext, (**hc).hscriptstring);
+ copyhandlecontents ( htext, ( **hc ).hscriptstring );
+
+ ( **hc ).fldirty = true;
- (**hc).fldirty = true;
}
- return (true);
- } /*cmdsavestring*/
+ return ( true );
-
+ } // cmdsavestring
+
+
static boolean cmdloadstring (short stringnumber, Handle *h) {
#pragma unused(stringnumber)
@@ -424,5 +430,18 @@
} /*cmdstart*/
+boolean cmdsetstring ( Handle h ) {
+ //
+ // 2007-07-25 creedon: created
+ //
+
+ if ( ! cmdsavestring ( NULL, h ) )
+ return ( false );
+
+ minireloadstrings ( idcommandconfig );
+
+ return ( true );
+
+ }
Modified: Frontier/trunk/Common/source/miniwindow.c
===================================================================
--- Frontier/trunk/Common/source/miniwindow.c 2007-07-28 21:42:34 UTC (rev 1721)
+++ Frontier/trunk/Common/source/miniwindow.c 2007-07-29 18:44:39 UTC (rev 1722)
@@ -51,7 +51,6 @@
#include "wpengine.h"
-
#define flmsgactive flmassiveupdate
WindowPtr miniwindow = nil;
@@ -61,7 +60,6 @@
hdlminirecord minidata = nil;
-
/*
5.0d14 dmb: major rewrite:
use wpengine, not the Dialog Manager.
@@ -1111,11 +1109,9 @@
shellbringtofront (hinfo);
- /*
- minisetvalue ();
+ // minisetvalue ();
- miniloadstrings ();
- */
+ // miniloadstrings ();
shellpushwindowglobals (hinfo);
@@ -1367,4 +1363,31 @@
} /*ministart*/
+boolean minireloadstrings ( short idconfig ) {
+ //
+ // reload the strings if the window is around
+ //
+ // 2007-07-27 creedon: created
+ //
+
+ hdlwindowinfo hinfo;
+
+ if ( minifindwindow ( idconfig, &hinfo ) ) {
+
+ shellpushwindowglobals ( hinfo );
+
+ miniloadstrings ( );
+
+ ( **minidata ).flselectallpending = true; // select all on idle
+
+ shellpopglobals ( );
+
+ return ( true );
+
+ }
+
+ return ( false );
+
+ } // minireloadstrings
+
Modified: Frontier/trunk/Common/source/shellwindowverbs.c
===================================================================
--- Frontier/trunk/Common/source/shellwindowverbs.c 2007-07-28 21:42:34 UTC (rev 1721)
+++ Frontier/trunk/Common/source/shellwindowverbs.c 2007-07-29 18:44:39 UTC (rev 1722)
@@ -59,7 +59,7 @@
typedef enum tywindowtoken {
-
+
isopenfunc,
openfunc,
@@ -118,20 +118,21 @@
#ifdef MACVERSION
- playerfunc, /*7.0b4 PBS: QuickTime Player window*/
-
+ playerfunc, // 7.0b4 PBS: QuickTime Player window
+
#endif
getfilefunc,
- isreadonlyfunc, /*7.0b6 PBS: return true if window is read-only*/
+ isreadonlyfunc, // 7.0b6 PBS: return true if window is read-only
+ setquickscriptfunc, // 2007-07-25 creedon: window.setQuickScript
+
ctwindowverbs
+
} tywindowtoken;
-
-
static boolean getwinaddressparam (hdltreenode hfirst, short pnum, hdlwindowinfo *hinfo) {
hdlhashtable htable;
@@ -1078,18 +1079,21 @@
static boolean windowfunctionvalue (short token, hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) {
-
- /*
- 10/3/91 dmb: moved a couple of verbs in from shellverbs.c -- they're the
- odd ones out following zoomfunc.
-
- 6/24/92 dmb: added gettitle, settitle verbs
-
- 6/1/93 dmb: when vreturned is nil, return whether or not verb token must
- be run in the Frontier process
- 6.2a8 AR: systemstatsfunc now works for GDBs (at least partly)
- */
+ //
+ // 2007-07-28 creedon: added setquickscriptfunc case, set the Quick Script
+ // window script
+ //
+ // 6.2a8 AR: systemstatsfunc now works for GDBs (at least partly)
+ //
+ // 1993-06-01 dmb: when vreturned is nil, return whether or not verb token
+ // must be run in the Frontier process
+ //
+ // 1992-06-24 dmb: added gettitle, settitle verbs
+ //
+ // 1991-10-03 dmb: moved a couple of verbs in from shellverbs.c -- they're
+ // the odd ones out following zoomfunc.
+ //
register hdltreenode hp = hparam1;
register tyvaluerecord *v = vreturned;
@@ -1275,12 +1279,29 @@
case isreadonlyfunc: /*7.0b6 PBS: return true if a window is read-only*/
return (isreadonlyverb (hparam1, v));
+
+ case setquickscriptfunc: {
+ Handle h;
+
+ flnextparamislast = true;
+
+ if ( ! getreadonlytextvalue ( hparam1, 1, &h ) )
+ return (false);
+
+ ( *v ).data.flvalue = cmdsetstring ( h );
+
+ return ( true );
+
+ }
+
default:
+
errornum = notimplementederror;
goto error;
- } /*switch*/
+
+ } // switch
error:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-07-28 21:42:34
|
Revision: 1721
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1721&view=rev
Author: creecode
Date: 2007-07-28 14:42:34 -0700 (Sat, 28 Jul 2007)
Log Message:
-----------
Tagging the v10.1a15 release of the Frontier Kernel.
Added Paths:
-----------
Frontier/tags/release-Frontier_10.1a15/
Copied: Frontier/tags/release-Frontier_10.1a15 (from rev 1720, Frontier/trunk)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-07-22 02:23:50
|
Revision: 1720
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1720&view=rev
Author: creecode
Date: 2007-07-21 19:23:51 -0700 (Sat, 21 Jul 2007)
Log Message:
-----------
removed some erroneous library search paths which showed up as warnings when doing a Deployment build
Modified Paths:
--------------
Frontier/trunk/build_Xcode/Frontier.xcodeproj/project.pbxproj
Modified: Frontier/trunk/build_Xcode/Frontier.xcodeproj/project.pbxproj
===================================================================
--- Frontier/trunk/build_Xcode/Frontier.xcodeproj/project.pbxproj 2007-07-20 20:07:49 UTC (rev 1719)
+++ Frontier/trunk/build_Xcode/Frontier.xcodeproj/project.pbxproj 2007-07-22 02:23:51 UTC (rev 1720)
@@ -3977,18 +3977,7 @@
"$(SRCROOT)",
"$(SRCROOT)/tools",
"$(SRCROOT)/../Common/sqlite3",
- /usr/local/lib/mysql/lib,
- "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_3)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_4)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_5)",
);
- LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_4 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_5 = "\"$(SRCROOT)/build/Development\"";
OTHER_CFLAGS = (
"-fno-inline",
"-malign-mac68k",
@@ -4045,18 +4034,7 @@
"$(SRCROOT)",
"$(SRCROOT)/tools",
"$(SRCROOT)/../Common/sqlite3",
- /usr/local/lib/mysql/lib,
- "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_3)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_4)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_5)",
);
- LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_4 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_5 = "\"$(SRCROOT)/build/Development\"";
OTHER_CFLAGS = (
"-fno-inline",
"-malign-mac68k",
@@ -4109,18 +4087,7 @@
"$(SRCROOT)",
"$(SRCROOT)/tools",
"$(SRCROOT)/../Common/sqlite3",
- /usr/local/lib/mysql/lib,
- "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_3)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_4)",
- "$(LIBRARY_SEARCH_PATHS_QUOTED_5)",
);
- LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_3 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_4 = "\"$(SRCROOT)/build/Development\"";
- LIBRARY_SEARCH_PATHS_QUOTED_5 = "\"$(SRCROOT)/build/Development\"";
OTHER_CFLAGS = (
"-fno-inline",
"-malign-mac68k",
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <cre...@us...> - 2007-07-20 20:07:47
|
Revision: 1719
http://frontierkernel.svn.sourceforge.net/frontierkernel/?rev=1719&view=rev
Author: creecode
Date: 2007-07-20 13:07:49 -0700 (Fri, 20 Jul 2007)
Log Message:
-----------
documenting some mySql verbs
Added Paths:
-----------
ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/clearQuery.fvc
ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/close.fvc
ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/compileQuery.fvc
Added: ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/clearQuery.fvc
===================================================================
--- ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/clearQuery.fvc (rev 0)
+++ ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/clearQuery.fvc 2007-07-20 20:07:49 UTC (rev 1719)
@@ -0,0 +1,85 @@
+FrontierVcsFile:3:optx:docServerData.formats.outline.mySql.clearQuery
+
+Syntax
+ mySql.clearQuery ( queryId )
+Params
+ queryId is a number, a query id.
+Action
+ Clear a MySQL query.
+Returns
+ 0 ( zero )
+Examples
+ on querySample ( ) {
+ local ( databaseId, databaseName = "States", host = "127.0.0.1", password = "", port = 3306, query = "SELECT * FROM States", queryId, result, user = "root" );
+
+ result = mySql.init ( );
+
+ databaseId = mySql.connect ( host, user, password, databaseName, port );
+
+ queryId = mySql.compileQuery ( databaseId, query );
+
+ dialog.alert ( "Selected row count: " + mySql.getSelectedRowCount ( queryId ) );
+ dialog.alert ( "Column count: " + mySql.getColumnCount ( databaseId ) );
+ dialog.alert ( "Query warnings: " + mySql.getQueryWarningCount ( databaseId ) );
+ dialog.alert ( "Query info: " + mySql.getQueryInfo ( databaseId ) );
+
+ loop {
+ result = mySql.getRow ( queryId );
+
+ if result == 0 {
+ break};
+
+ dialog.alert ( result )};
+
+ mySql.clearQuery ( queryId );
+
+ result = mySql.close ( databaseId );
+
+ result = mySql.end ( );
+
+ msg ( result )}
+
+ on easyQuery ( databaseId, query, maxRows = 0 ) {
+ local ( queryId, dataSet = { }, row, rowCount = 0 );
+
+ bundle { // is maxRow a number?
+ try {
+ number ( maxRows )}
+ else {
+ scriptError ( "mySql.easyQuery requires a numeric value for maxRows." )}};
+
+ queryId = mySql.compileQuery ( databaseId, query ); // this will scriptError on its own if it fails
+
+ if queryId > 0 {
+ loop {
+ result = mySql.getRow ( queryId );
+
+ if result == 0 { // MySQL's code for no more rows
+ break};
+
+ ++rowCount;
+
+ if ( maxRows > 0 ) and ( rowCount > maxRows ) {
+ break};
+
+ dataSet [ rowCount ] = result};
+
+ mySql.clearQuery ( queryId )};
+
+ return ( dataSet )}
+Notes
+ MySQL returns nothing from the mysql_free_result call, which is what Frontier\xD5s mySql.clearQuery calls. So there\xD5s no real point in doing any error checking here, although you might want to test the general MySQL error functions.
+See Also
+ mySql.compileQuery
+ mySql.easyQuery
+ mySql.getAffectedRowCount
+ mySql.getQueryInfo
+ mySql.getQueryWarningCount
+ mySql.getRow
+ mySql.getSelectedRowCount
+ mySql.seekRow
+See Also MySQL APIs
+ mysql_free_result < http://dev.mysql.com/doc/refman/5.0/en/mysql-free-result.html >
+
+
+
Property changes on: ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/clearQuery.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/close.fvc
===================================================================
--- ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/close.fvc (rev 0)
+++ ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/close.fvc 2007-07-20 20:07:49 UTC (rev 1719)
@@ -0,0 +1,42 @@
+FrontierVcsFile:3:optx:docServerData.formats.outline.mySql.close
+
+Syntax
+ mySql.close ( databaseId )
+Params
+ databaseId is a number, the database connection ID.
+Action
+ Close a MySQL database connection ID.
+Returns
+ Nothing
+Examples
+ bundle {
+ on connect ( ) {
+ local ( databaseId, databaseName = "States", host = "127.0.0.1", password = "", port = 3306, result, user = "root" );
+
+ try {
+ databaseId = mySql.connect ( host, user, password, databaseName, port )}
+ else {
+ dialog.alert ( mySql.getErrorMessage ( databaseId ) );
+ dialog.alert ( mySql.getErrorNumber ( databaseId ) )};
+
+ result = mySql.close ( databaseId );
+
+ return ( result )};
+
+ local ( i );
+
+ mySql.init ( );
+
+ for i = 1 to 1000000 {
+ msg ( i + ": " + connect ( ) + " (" + sys.memAvail ( ) + ")" )};
+
+ mySql.end ( )}
+Notes
+ The MySQL close API function doesn\xD5t appear to return any value for success or failure.
+See Also
+ mySql.connect
+See Also MySQL APIs
+ mysql_close < http://dev.mysql.com/doc/refman/5.0/en/mysql-close.html >
+
+
+
Property changes on: ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/close.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
Added: ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/compileQuery.fvc
===================================================================
--- ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/compileQuery.fvc (rev 0)
+++ ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/compileQuery.fvc 2007-07-20 20:07:49 UTC (rev 1719)
@@ -0,0 +1,92 @@
+FrontierVcsFile:3:optx:docServerData.formats.outline.mySql.compileQuery
+
+Syntax
+ mySql.compileQuery ( databaseId, query )
+Params
+ databaseId is a number, the database connection ID.
+ query is a string, an SQL statement.
+Action
+ Compile a MySQL query, preparing it for execution.
+Returns
+ A number, query id or 0 (zero) if no rows were returned.
+Examples
+ on querySample ( ) {
+ local ( databaseId, databaseName = "States", host = "127.0.0.1", password = "", query = "SELECT * FROM States", queryId, result, sql, user = "root", port = 3306 );
+
+ result = mySql.init ( );
+
+ databaseId = mySql.connect ( host, user, password, databaseName, port );
+
+ queryId = mySql.compileQuery ( databaseId, query );
+
+ dialog.alert ( "Selected row count: " + mySql.getSelectedRowCount ( queryId ) );
+ dialog.alert ( "Column count: " + mySql.getColumnCount ( databaseId ) );
+ dialog.alert ( "Query warnings: " + mySql.getQueryWarningCount ( databaseId ) );
+ dialog.alert ( "Query info: " + mySql.getQueryInfo ( databaseId ) );
+
+ loop {
+ result = mySql.getRow ( queryId );
+
+ if result == 0 {
+ break};
+
+ dialog.alert ( result )};
+
+ mySql.clearQuery ( queryId );
+
+ result = mySql.close ( databaseId );
+ result = mySql.end ( );
+
+ return ( result )}
+
+ on easyQuery ( databaseId, query, maxRows = 0 ) {
+ local ( queryId, dataSet = { }, row, rowCount = 0 );
+
+ bundle { // is maxRow a number?
+ try {
+ number ( maxRows )}
+ else {
+ scriptError ( "mySql.easyQuery requires a numeric value for maxRows." )}};
+
+ queryId = mySql.compileQuery ( databaseId, query ); // this will scriptError on its own if it fails
+
+ if queryId > 0 {
+ loop {
+ result = mySql.getRow ( queryId );
+
+ if result == 0 { // MySQL's code for no more rows
+ break};
+
+ ++rowCount;
+
+ if ( maxRows > 0 ) and ( rowCount > maxRows ) {
+ break};
+
+ dataSet [ rowCount ] = result};
+
+ mySql.clearQuery ( queryId )};
+
+ return ( dataSet )}
+Notes
+ Don\xD5t forget to put the mySql.compileQuery call inside a try statement. If you query with a bad SQL statement, Frontier will return a scriptError. It\xD5s also probably a good idea to check the various query information functions mySql.getSelectedRowCount, mySql.getColumnCount, mySql.getQueryWarningCount, and mySql.getQueryInfo.
+
+ It\xD5s important to test the results of mySql.compileQuery for a 0 (zero) value. There are a number of other functions that rely on a queryID and if the queryID is 0, they will not function correctly or may crash. In particular, if mySql.compileQuery returns a 0, you do not need to execute a mySql.clearQuery command.
+
+ There\xD5s a lot going on inside mySql.compileQuery. Within Frontier, we\xD5re calling two key MySQL API calls: mysql_query and mysql_store_result. As you might imagine, MySQL has a lot of depth in how it manages queries. In particular, it has two query result approaches: return the entire results table at once or return one line of the results table at once. The first uses the mysql_store_result API call and is the mechanism used within Frontier. While there are advantages to both, we use the store result approach because it gives us some more flexibility in certain areas. Read the MySQL API for more details. A lot of good information is at the bottom of this page.
+
+ It should also be noted that MySQL supports multiple SQL statements in SQL queries. The current Frontier implementation does not. For each query, Frontier\xD5s wrapper to SQL will simply query based on the first statement in the SQL provided.
+See Also
+ mySql.clearQuery
+ mySql.easyQuery
+ mySql.getAffectedRowCount
+ mySql.getQueryInfo
+ mySql.getQueryWarningCount
+ mySql.getRow
+ mySql.getSelectedRowCount
+ mySql.seekRow
+See Also MySQL APIs
+ mysql_query < http://dev.mysql.com/doc/refman/5.0/en/mysql-query.html >
+ mysql_store_result < http://dev.mysql.com/doc/refman/5.0/en/mysql-store-result.html >
+
+
+
Property changes on: ODBs/trunk/docServerRoot/docServerData/formats/outline/mySql/compileQuery.fvc
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|