Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/lend/src/xDataTOM_Misc.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/lend/src/xDataTOM_Misc.cc (Version 11.3.0) and /processes/hadronic/models/lend/src/xDataTOM_Misc.cc (Version 9.3.p2)


  1 /*                                                  1 
  2 # <<BEGIN-copyright>>                             
  3 # <<END-copyright>>                               
  4 */                                                
  5                                                   
  6 #include <stdlib.h>                               
  7 #include <string.h>                               
  8 #include <ctype.h>                                
  9 #ifdef WIN32                                      
 10 #include <direct.h>                               
 11 #else                                             
 12 #include <unistd.h>                               
 13 #endif                                            
 14                                                   
 15 #include "xDataTOM_private.h"                     
 16                                                   
 17 #if defined __cplusplus                           
 18 namespace GIDI {                                  
 19 using namespace GIDI;                             
 20 #endif                                            
 21                                                   
 22 #define nameValueLength 1024                      
 23                                                   
 24 static xDataTOM_element *xDataTOM_getLinksElem    
 25 static int xDataTOM_getLinksElement3( statusMe    
 26 /*                                                
 27 **********************************************    
 28 */                                                
 29 char *xDataTOMMisc_getAbsPath( statusMessageRe    
 30 /*                                                
 31 *   User must free returned string.               
 32 */                                                
 33     int n = (int) strlen( fileName ) + 1, nCwd    
 34     char *absPath, cwd[4 * 1024] = "", *p, *ne    
 35                                                   
 36     if( fileName[0] != '/' ) {                    
 37         //if( getcwd( cwd, sizeof( cwd ) + 1 )    
 38         //TK modified above line for compiler(    
 39         if( getcwd( cwd, sizeof( cwd ) ) == NU    
 40             smr_setReportError2p( smr, xDataTO    
 41             return( NULL );                       
 42         }                                         
 43         nCwd = (int) strlen( cwd );               
 44         n += nCwd + 1;                            
 45     }                                             
 46     if( ( absPath = (char *) smr_malloc2( smr,    
 47     if( fileName[0] != '/' ) {                    
 48         strcpy( absPath, cwd );                   
 49         strcat( absPath, "/" );                   
 50         strcat( absPath, fileName ); }            
 51     else {                                        
 52         strcpy( absPath, fileName );              
 53     }                                             
 54                                                   
 55     while( 1 ) {                                  
 56         if( ( needle = strstr( absPath, "/./"     
 57         p = needle;                               
 58         for( needle += 2; *needle; p++, needle    
 59         *p = 0;                                   
 60     } // Loop checking, 11.06.2015, T. Koi        
 61                                                   
 62     while( 1 ) {                                  
 63         if( ( needle = strstr( absPath, "/../"    
 64         p = needle - 1;                           
 65         while( ( p > absPath ) && ( *p != '/'     
 66         if( *p != '/' ) break;                    
 67         if( p == absPath ) break;                 
 68         for( needle += 3; *needle; p++, needle    
 69         *p = 0;                                   
 70     } // Loop checking, 11.06.2015, T. Koi        
 71     return( absPath );                            
 72 }                                                 
 73 /*                                                
 74 **********************************************    
 75 */                                                
 76 int xDataTOM_setMessageError_ReturnInt( int va    
 77     const char *fmt, ... ) {                      
 78                                                   
 79     va_list args;                                 
 80                                                   
 81     va_start( args, fmt );                        
 82     smr_setReportError( smr, userInterface, pa    
 83     va_end( args );                               
 84     return( value );                              
 85 }                                                 
 86 /*                                                
 87 **********************************************    
 88 */                                                
 89 xDataTOM_element *xDataTOM_getLinksElement( st    
 90                                                   
 91     xDataTOM_element *linkedElement = NULL;       
 92                                                   
 93     if( link[0] == '/' ) {                        
 94         for( linkedElement = element; linkedEl    
 95         linkedElement = xDataTOM_getLinksEleme    
 96     else {                                        
 97         smr_setReportError2( smr, smr_unknownI    
 98     }                                             
 99     return( linkedElement );                      
100 }                                                 
101 /*                                                
102 **********************************************    
103 */                                                
104 static xDataTOM_element *xDataTOM_getLinksElem    
105                                                   
106     int n = (int) strlen( link );                 
107     char const *slash = strchr( link, '/' ), *    
108     char name[nameValueLength], value[nameValu    
109     xDataTOM_element *child;                      
110                                                   
111     if( bracket != NULL ) n = (int) ( bracket     
112     if( slash != NULL ) {                         
113         if( (int) ( slash - link ) < n ) {        
114             n = (int) ( slash - link );           
115             bracket = NULL;                       
116         }                                         
117     }                                             
118     for( child = element->children; child != N    
119         if( strncmp( link, child->name, n ) ==    
120             if( bracket != NULL ) {               
121                 if( bracket[1] != '@' ) {         
122                     smr_setReportError2( smr,     
123                     return( NULL );               
124                 }                                 
125                 if( xDataTOM_getLinksElement3(    
126                 if( ( attributesValue = xDataT    
127                 if( strcmp( value, attributesV    
128             }                                     
129             if( slash == NULL ) return( child     
130             return( xDataTOM_getLinksElement2(    
131         }                                         
132     }                                             
133     return( NULL );                               
134 }                                                 
135 /*                                                
136 **********************************************    
137 */                                                
138 static int xDataTOM_getLinksElement3( statusMe    
139                                                   
140     int n;                                        
141     char const *equal = strchr( nameValue, '='    
142     char quote = '\'';                            
143                                                   
144     if( equal == NULL ) {                         
145         smr_setReportError2( smr, smr_unknownI    
146         return( 1 );                              
147     }                                             
148     n = (int) ( equal - nameValue );              
149     if( n >= ( nameValueLength - 1 ) ) {          
150         smr_setReportError2( smr, smr_unknownI    
151         return( 1 );                              
152     }                                             
153     strncpy( name, nameValue, n );                
154     name[n] = 0;                                  
155                                                   
156     equal++;                                      
157     if( *equal != quote ) quote = '"';            
158     if( *equal != quote ) {                       
159         smr_setReportError2( smr, smr_unknownI    
160         return( 1 );                              
161     }                                             
162                                                   
163     equal++;                                      
164     p = strchr( equal, quote );                   
165     if( p == NULL ) {                             
166         smr_setReportError2( smr, smr_unknownI    
167         return( 1 );                              
168     }                                             
169                                                   
170     n = (int) ( p - equal );                      
171     if( n >= ( nameValueLength - 1 ) ) {          
172         smr_setReportError2( smr, smr_unknownI    
173         return( 1 );                              
174     }                                             
175     strncpy( value, equal, n );                   
176     value[n] = 0;                                 
177                                                   
178     return( 0 );                                  
179 }                                                 
180                                                   
181 #if defined __cplusplus                           
182 }                                                 
183 #endif                                            
184