You can subscribe to this list here.
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2012 |
Jan
(12) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(24) |
Aug
(17) |
Sep
(31) |
Oct
(1) |
Nov
(9) |
Dec
(46) |
2013 |
Jan
(8) |
Feb
(13) |
Mar
(11) |
Apr
(13) |
May
(27) |
Jun
(64) |
Jul
(59) |
Aug
(2) |
Sep
(5) |
Oct
(5) |
Nov
(13) |
Dec
(5) |
2014 |
Jan
(8) |
Feb
(7) |
Mar
|
Apr
(25) |
May
(22) |
Jun
(9) |
Jul
(16) |
Aug
|
Sep
(2) |
Oct
(27) |
Nov
|
Dec
(75) |
2015 |
Jan
(21) |
Feb
(8) |
Mar
(1) |
Apr
(36) |
May
(42) |
Jun
(58) |
Jul
(26) |
Aug
(13) |
Sep
(5) |
Oct
|
Nov
(7) |
Dec
(15) |
2016 |
Jan
(20) |
Feb
(12) |
Mar
|
Apr
|
May
|
Jun
(10) |
Jul
(8) |
Aug
(29) |
Sep
(42) |
Oct
(11) |
Nov
(3) |
Dec
(1) |
2017 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2018 |
Jan
(4) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(14) |
Sep
(13) |
Oct
(13) |
Nov
(32) |
Dec
(47) |
2019 |
Jan
(10) |
Feb
(9) |
Mar
|
Apr
(5) |
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
(7) |
Oct
|
Nov
|
Dec
(7) |
2020 |
Jan
(2) |
Feb
|
Mar
(14) |
Apr
(12) |
May
(13) |
Jun
(10) |
Jul
(6) |
Aug
(11) |
Sep
(14) |
Oct
(9) |
Nov
(10) |
Dec
(14) |
2021 |
Jan
(11) |
Feb
(16) |
Mar
(15) |
Apr
(20) |
May
(13) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
(14) |
Nov
(4) |
Dec
(5) |
2022 |
Jan
(14) |
Feb
(12) |
Mar
(2) |
Apr
(2) |
May
(7) |
Jun
(16) |
Jul
(8) |
Aug
(12) |
Sep
(10) |
Oct
(14) |
Nov
(23) |
Dec
(17) |
2023 |
Jan
(9) |
Feb
|
Mar
|
Apr
(4) |
May
(8) |
Jun
|
Jul
(29) |
Aug
(43) |
Sep
(32) |
Oct
(28) |
Nov
(27) |
Dec
(27) |
2024 |
Jan
(5) |
Feb
(11) |
Mar
(2) |
Apr
|
May
(3) |
Jun
|
Jul
(3) |
Aug
(10) |
Sep
(7) |
Oct
(6) |
Nov
(10) |
Dec
(7) |
2025 |
Jan
(19) |
Feb
(14) |
Mar
(12) |
Apr
(21) |
May
(3) |
Jun
(7) |
Jul
(2) |
Aug
(8) |
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
|
3
|
4
|
5
|
6
(2) |
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
From: <alk...@us...> - 2012-06-06 11:11:35
|
Revision: 1844 http://hwgui.svn.sourceforge.net/hwgui/?rev=1844&view=rev Author: alkresin Date: 2012-06-06 11:11:24 +0000 (Wed, 06 Jun 2012) Log Message: ----------- 2012-06-06 15:10 UTC+0300 Alexander Kresin <al...@be...> Modified Paths: -------------- trunk/hwgui/Changelog trunk/hwgui/source/xml/hxmldoc.prg trunk/hwgui/source/xml/xmlparse.c Modified: trunk/hwgui/Changelog =================================================================== --- trunk/hwgui/Changelog 2012-06-06 08:51:02 UTC (rev 1843) +++ trunk/hwgui/Changelog 2012-06-06 11:11:24 UTC (rev 1844) @@ -8,6 +8,13 @@ 2002-12-01 23:12 UTC+0100 Foo Bar <fo...@fo...> */ +2012-06-06 15:10 UTC+0300 Alexander Kresin <al...@be...> + * source/xml/hxmldoc.prg + * source/xml/xmlparse.c + * Errors handling has been improved. + * HXMLDoc():Read() returns Nil if an error had been occured and the + HXMLDoc:nLastErr keeps the error code. + 2012-06-06 12:50 UTC+0300 Alexander Kresin <al...@be...> * source/xml/hxmldoc.prg ! Small fixes and additions, which I've made earlier Modified: trunk/hwgui/source/xml/hxmldoc.prg =================================================================== --- trunk/hwgui/source/xml/hxmldoc.prg 2012-06-06 08:51:02 UTC (rev 1843) +++ trunk/hwgui/source/xml/hxmldoc.prg 2012-06-06 11:11:24 UTC (rev 1844) @@ -19,6 +19,7 @@ CLASS HXMLNode + CLASS VAR nLastErr SHARED DATA title DATA type DATA aItems INIT {} @@ -215,15 +216,15 @@ IF fname != Nil han := FOpen( fname, FO_READ ) IF han != -1 - hbxml_GetDoc( Self,han ) + ::nLastErr := hbxml_GetDoc( Self,han ) FClose( han ) ENDIF ELSEIF buffer != Nil - hbxml_GetDoc( Self,buffer ) + ::nLastErr := hbxml_GetDoc( Self,buffer ) ELSE Return Nil ENDIF -Return Self +Return Iif( ::nLastErr == 0, Self, Nil ) METHOD Save( fname,lNoHeader ) CLASS HXMLDoc Local handle := -2 Modified: trunk/hwgui/source/xml/xmlparse.c =================================================================== --- trunk/hwgui/source/xml/xmlparse.c 2012-06-06 08:51:02 UTC (rev 1843) +++ trunk/hwgui/source/xml/xmlparse.c 2012-06-06 11:11:24 UTC (rev 1844) @@ -48,13 +48,13 @@ static int nParseError; static HB_ULONG ulOffset; +#define HBXML_PREDEFS_KOL 6 static unsigned char *predefinedEntity1[] = { ( unsigned char * ) "lt;", ( unsigned char * ) "gt;", ( unsigned char * ) "amp;", ( unsigned char * ) "quot;", - ( unsigned char * ) "apos;" }; -static unsigned char *predefinedEntity2 = ( unsigned char * ) "<>&\"\'"; + ( unsigned char * ) "apos;", ( unsigned char * ) "nbsp;" }; +static unsigned char *predefinedEntity2 = ( unsigned char * ) "<>&\"\' "; - void hbxml_error( int nError, unsigned char *ptr ) { nParseError = nError; @@ -119,11 +119,6 @@ PHB_ITEM hbxml_pp( unsigned char *ptr, HB_ULONG ulLen ) { unsigned char *ptrStart = ptr; - unsigned char *predefinedEntity1[] = - { ( unsigned char * ) "lt;", ( unsigned char * ) "gt;", - ( unsigned char * ) "amp;", ( unsigned char * ) "quot;", - ( unsigned char * ) "apos;" }; - unsigned char *predefinedEntity2 = ( unsigned char * ) "<>&\"\'"; int i, nlen; HB_ULONG ul = 0, ul1; @@ -147,7 +142,7 @@ } else { - for( i = 0; i < 5; i++ ) + for( i = 0; i < HBXML_PREDEFS_KOL; i++ ) { nlen = strlen( ( char * ) predefinedEntity1[i] ); if( !memcmp( ptr + 1, predefinedEntity1[i], nlen ) ) @@ -159,7 +154,7 @@ break; } } - if( i == 5 ) + if( i == HBXML_PREDEFS_KOL ) hbxml_error( HBXML_ERROR_WRONG_ENTITY, ptr ); } } @@ -394,7 +389,7 @@ ( *pBuffer )--; if( **pBuffer == '?' ) ( *pBuffer )--; - if( ( pArray = hbxml_getattr( pBuffer, &lSingle ) ) == NULL ) + if( ( pArray = hbxml_getattr( pBuffer, &lSingle ) ) == NULL || nParseError ) { hb_itemRelease( pNode ); return HB_FALSE; @@ -431,12 +426,21 @@ hb_objSendMsg( pNode, "AITEMS", 0 ); hb_arrayAdd( hb_param( -1, HB_IT_ANY ), pTemp ); hb_itemRelease( pTemp ); + if( nParseError ) + { + hb_itemRelease( pNode ); + return HB_FALSE; + } } if( *( *pBuffer + 1 ) == '/' ) { if( memcmp( *pBuffer + 2, cNodeName, nLenNodeName ) ) + { hbxml_error( HBXML_ERROR_WRONG_TAG_END, *pBuffer ); + hb_itemRelease( pNode ); + return HB_FALSE; + } else { while( **pBuffer != '>' ) @@ -520,6 +524,15 @@ { HB_BOOL lSingle; PHB_ITEM pArray = hbxml_getattr( &ptr, &lSingle ); + if( !pArray || nParseError ) + { + if( bFile ) + hb_xfree( cBuffer ); + if( pArray ) + hb_itemRelease( pArray ); + hb_retni( nParseError ); + return; + } hb_objSendMsg( pDoc, "_AATTR", 1, pArray ); hb_itemRelease( pArray ); HB_SKIPTABSPACES( ptr ); @@ -553,8 +566,6 @@ if( bFile ) hb_xfree( cBuffer ); - if( nParseError ) - hb_retni( nParseError ); - else - hb_retni( 0 ); + hb_retni( nParseError ); } + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <alk...@us...> - 2012-06-06 08:51:13
|
Revision: 1843 http://hwgui.svn.sourceforge.net/hwgui/?rev=1843&view=rev Author: alkresin Date: 2012-06-06 08:51:02 +0000 (Wed, 06 Jun 2012) Log Message: ----------- 2012-06-06 12:50 UTC+0300 Alexander Kresin <al...@be...> Modified Paths: -------------- trunk/hwgui/Changelog trunk/hwgui/source/xml/hxmldoc.prg Modified: trunk/hwgui/Changelog =================================================================== --- trunk/hwgui/Changelog 2012-02-11 14:35:18 UTC (rev 1842) +++ trunk/hwgui/Changelog 2012-06-06 08:51:02 UTC (rev 1843) @@ -7,6 +7,11 @@ For example: 2002-12-01 23:12 UTC+0100 Foo Bar <fo...@fo...> */ + +2012-06-06 12:50 UTC+0300 Alexander Kresin <al...@be...> + * source/xml/hxmldoc.prg + ! Small fixes and additions, which I've made earlier + 2012-02-11 12:00 UTC-0300 Luiz Rafael Culik (luiz at xharbour.com) - samples/image/BUILD.BMP samples/image/DOOR.BMP Modified: trunk/hwgui/source/xml/hxmldoc.prg =================================================================== --- trunk/hwgui/source/xml/hxmldoc.prg 2012-02-11 14:35:18 UTC (rev 1842) +++ trunk/hwgui/source/xml/hxmldoc.prg 2012-06-06 08:51:02 UTC (rev 1843) @@ -23,11 +23,13 @@ DATA type DATA aItems INIT {} DATA aAttr INIT {} + DATA cargo METHOD New( cTitle, type, aAttr ) METHOD Add( xItem ) METHOD GetAttribute( cName ) METHOD SetAttribute( cName,cValue ) + METHOD DelAttribute( cName ) METHOD Save( handle,level ) METHOD Find( cTitle,nStart ) ENDCLASS @@ -63,10 +65,23 @@ Return .T. +METHOD DelAttribute( cName ) CLASS HXMLNode +Local i := Ascan( ::aAttr,{|a|a[1]==cName} ) + + IF i != 0 + Adel( ::aAttr, i ) + Asize( ::aAttr, Len( ::aAttr ) - 1 ) + ENDIF +Return .T. + METHOD Save( handle,level ) CLASS HXMLNode -Local i, s, lNewLine +Local i, s := Space(level*2)+'<', lNewLine - s := Space(level*2) + '<' + IF !__mvExist( "HXML_NEWLINE" ) + __mvPrivate( "HXML_NEWLINE" ) + __mvPut( "HXML_NEWLINE", .T. ) + ENDIF + lNewLine := m->hxml_newline IF ::type == HBXML_TYPE_COMMENT s += '!--' ELSEIF ::type == HBXML_TYPE_CDATA @@ -81,20 +96,20 @@ s += ' ' + ::aAttr[i,1] + '="' + HBXML_Transform(::aAttr[i,2]) + '"' NEXT ENDIF - IF ::type == HBXML_TYPE_COMMENT - s += '-->' + Chr(10) - ELSEIF ::type == HBXML_TYPE_PI + IF ::type == HBXML_TYPE_PI s += '?>' + Chr(10) + m->hxml_newline := .T. ELSEIF ::type == HBXML_TYPE_SINGLE s += '/>' + Chr(10) + m->hxml_newline := .T. ELSEIF ::type == HBXML_TYPE_TAG s += '>' - IF Len(::aItems) == 1 .AND. Valtype(::aItems[1]) == "C" .AND. ; - Len(::aItems[1]) + Len(s) < 80 - lNewLine := .F. + IF Empty( ::aItems ) .OR. ( Len(::aItems) == 1 .AND. ; + Valtype(::aItems[1]) == "C" .AND. Len(::aItems[1]) + Len(s) < 80 ) + lNewLine := m->hxml_newline := .F. ELSE s += Chr(10) - lNewLine := .T. + lNewLine := m->hxml_newline := .T. ENDIF ENDIF IF handle >= 0 @@ -104,33 +119,45 @@ FOR i := 1 TO Len( ::aItems ) IF Valtype( ::aItems[i] ) == "C" IF handle >= 0 - IF ::type == HBXML_TYPE_CDATA + IF ::type == HBXML_TYPE_CDATA .OR. ::type == HBXML_TYPE_COMMENT FWrite( handle, ::aItems[i] ) ELSE FWrite( handle, HBXML_Transform( ::aItems[i] ) ) ENDIF + IF lNewLine + FWrite( handle, Chr(10) ) + ENDIF ELSE - IF ::type == HBXML_TYPE_CDATA + IF ::type == HBXML_TYPE_CDATA .OR. ::type == HBXML_TYPE_COMMENT s += ::aItems[i] ELSE s += HBXML_Transform( ::aItems[i] ) ENDIF + IF lNewLine + s += Chr(10) + ENDIF ENDIF + m->hxml_newline := .F. ELSE s += ::aItems[i]:Save( handle, level+1 ) ENDIF NEXT + m->hxml_newline := .T. IF handle >= 0 IF ::type == HBXML_TYPE_TAG FWrite( handle, Iif(lNewLine,Space(level*2),"") + '</' + ::title + '>' + Chr(10 ) ) ELSEIF ::type == HBXML_TYPE_CDATA FWrite( handle, ']]>' + Chr(10) ) + ELSEIF ::type == HBXML_TYPE_COMMENT + FWrite( handle, '-->' + Chr(10) ) ENDIF ELSE IF ::type == HBXML_TYPE_TAG s += Iif(lNewLine,Space(level*2),"") + '</' + ::title + '>' + Chr(10 ) ELSEIF ::type == HBXML_TYPE_CDATA s += ']]>' + Chr(10) + ELSEIF ::type == HBXML_TYPE_COMMENT + s += '-->' + Chr(10) ENDIF Return s ENDIF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |