Loading common/string.cpp +52 −67 Original line number Diff line number Diff line /****************************************************************************/ /* MODULE: string.cpp */ /* string.cpp */ /* ROLE: fonctions complementaires de traitement de chaines de caracteres */ /****************************************************************************/ #include "fctsys.h" #include <time.h> #include "common.h" #include "macros.h" /*********************************************************************/ Loading @@ -24,7 +25,7 @@ int ReadDelimitedText( char* dest, char* source, int NbMaxChar ) for( ii = 0, jj = 0; ii < NbMaxChar - 1; jj++, source++ ) { if( *source == 0 ) break; /* fin de ligne */ break; /* E.O.L. */ if( *source == '"' ) /* delimiteur trouve */ { if( flag ) Loading @@ -37,7 +38,7 @@ int ReadDelimitedText( char* dest, char* source, int NbMaxChar ) } } *dest = 0; /* Null terminaison */ *dest = 0; /* Null termined */ return jj; } Loading @@ -46,8 +47,8 @@ int ReadDelimitedText( char* dest, char* source, int NbMaxChar ) char* StrPurge( char* text ) /********************************/ /* Supprime les caracteres Space en debut de la ligne text * retourne un pointeur sur le 1er caractere non Space de text /* Remove training space in text * return a pointer on the first not space char in text */ { char* ptspace; Loading @@ -72,10 +73,10 @@ char* StrPurge( char* text ) char* GetLine( FILE* File, char* Line, int* LineNum, int SizeLine ) /*****************************************************************/ /* Routine de lecture de 1 ligne utile * retourne la 1ere ligne utile lue. * elimine lignes vides et commentaires * incremente *LineNum a chaque ligne lue /* Read lines from File * Skip void lines and comments (starting by #) * return the first non void line. * increments *LineNum for ecah line */ { do { Loading @@ -92,39 +93,37 @@ char* GetLine( FILE* File, char* Line, int* LineNum, int SizeLine ) /*******************************/ char* DateAndTime( char* Line ) char* DateAndTime( char* aBuffer ) /*******************************/ /* Retourne la chaine de caractere donnant date+heure */ /* return in aBuffer the date and time * time is the local time. */ { time_t Time_Buf; struct tm* Date; wxString datetime; time( &Time_Buf ); Date = gmtime( &Time_Buf ); sprintf( Line, "%d/%d/%d-%2.2d:%2.2d:%2.2d", Date->tm_mday, Date->tm_mon + 1, Date->tm_year + 1900, Date->tm_hour, Date->tm_min, Date->tm_sec ); datetime = DateAndTime(); strcpy( aBuffer, CONV_TO_UTF8( datetime ) ); return Line; return aBuffer; } /*******************************/ wxString DateAndTime() /*******************************/ /* Retourne la chaine de caractere donnant date+heure */ /* return a wxString filled with the date and time * note: does the same thing than strftime() * time is the local time. */ { time_t Time_Buf; struct tm* Date; wxString Line; time( &Time_Buf ); Date = gmtime( &Time_Buf ); wxDateTime datetime = wxDateTime::Now(); Line.Printf( wxT( "%d/%d/%d-%2.2d:%2.2d:%2.2d" ), Date->tm_mday, Date->tm_mon + 1, Date->tm_year + 1900, Date->tm_hour, Date->tm_min, Date->tm_sec ); datetime.SetCountry( wxDateTime::Country_Default ); Line = datetime.Format( wxDefaultDateTimeFormat, wxDateTime::Local ); return Line; } Loading @@ -135,9 +134,9 @@ int StrLenNumCmp( const wxChar* str1, const wxChar* str2, int NbMax ) /************************************************************/ /* * routine (compatible qsort() ) de comparaison pour classement alphabtique * Analogue a strncmp() mais les nombres sont compars selon leur valeur numrique * et non pas par leur code ascii * sort() function * Same as strncmp() but numbers in strings * are compared according to the value, not the ascii value of each digit */ { int i; Loading @@ -148,7 +147,7 @@ int StrLenNumCmp( const wxChar* str1, const wxChar* str2, int NbMax ) for( i = 0; i < NbMax; i++ ) { if( isdigit( *str1 ) && isdigit( *str2 ) ) /* nombres en jeu */ if( isdigit( *str1 ) && isdigit( *str2 ) ) /* digit found */ { nb1 = 0; nb2 = 0; while( isdigit( *str1 ) ) Loading Loading @@ -185,10 +184,9 @@ int StrNumICmp( const wxChar* str1, const wxChar* str2 ) /***********************************************/ /* * routine (compatible qsort() ) de comparaison pour classement alphabtique, * avec lower case == upper case. * Analogue a stricmp() mais les nombres sont compars selon leur valeur numrique * et non pas par leur code ascii * sort() function * Same as stricmp() but numbers in strings * are compared according to the value, not the ascii value of each digit */ { return StrLenNumICmp( str1, str2, 32735 ); Loading @@ -200,10 +198,9 @@ int StrLenNumICmp( const wxChar* str1, const wxChar* str2, int NbMax ) /**************************************************************/ /* * routine (compatible qsort() ) de comparaison pour classement alphabetique, * avec lower case == upper case. * Analogue a stricmp() mais les nombres sont compares selon leur valeur numerique * et non pas par leur code ascii * sort() function * Same as strnicmp() but numbers in strings * are compared according to the value, not the ascii value of each digit */ { int i; Loading @@ -214,7 +211,7 @@ int StrLenNumICmp( const wxChar* str1, const wxChar* str2, int NbMax ) for( i = 0; i < NbMax; i++ ) { if( isdigit( *str1 ) && isdigit( *str2 ) ) /* nombres en jeu */ if( isdigit( *str1 ) && isdigit( *str2 ) ) /* find number */ { nb1 = 0; nb2 = 0; while( isdigit( *str1 ) ) Loading Loading @@ -265,13 +262,17 @@ bool WildCompareString( const wxString& pattern, const wxString& string_to_tst, if( case_sensitive ) { wild = pattern.GetData(); string = string_to_tst.GetData(); wild = pattern.GetData(); string = string_to_tst.GetData(); } else { _pattern = pattern; _pattern.MakeUpper(); _string_to_tst = string_to_tst; _string_to_tst.MakeUpper(); wild = _pattern.GetData(); string = _string_to_tst.GetData(); _pattern = pattern; _pattern.MakeUpper(); _string_to_tst = string_to_tst; _string_to_tst.MakeUpper(); wild = _pattern.GetData(); string = _string_to_tst.GetData(); } while( (*string) && (*wild != '*') ) Loading Loading @@ -311,29 +312,14 @@ bool WildCompareString( const wxString& pattern, const wxString& string_to_tst, } /***********************************************/ void ChangeSpaces( char* Text, int NewChar ) /***********************************************/ /* Change dans un texte les espaces en NewChar */ { if( Text == NULL ) return; while( *Text ) { if( *Text == ' ' ) *Text = (char) NewChar; Text++; } } /***************************/ char* to_point( char* Text ) /**************************/ /* convertit les , en . dans une chaine. utilis pour compenser /* convertit les , en . dans une chaine. utilise pour compenser * l'internalisation de la fct printf * qui genere les flottants avec une virgule au lieu du point * Obsolete: use SetLocaleTo_C_standard insteed */ { char* line = Text; Loading Loading @@ -372,4 +358,3 @@ char* strupper( char* Text ) return Text; } eeschema/save_schemas.cpp +10 −5 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ bool SCH_SCREEN::Save( FILE* aFile ) const wxString Name, msg; Ki_PageDescr* PlotSheet; wxString datetime = DateAndTime( ); LibNames = GetLibNames(); for( int ii = 0; LibNames[ii] != NULL; ii++ ) { Loading @@ -130,12 +132,15 @@ bool SCH_SCREEN::Save( FILE* aFile ) const MyFree( LibNames ); // Creates header if( fprintf( aFile, "%s %s %d\n", EESCHEMA_FILE_STAMP, SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION ) == EOF || fprintf( aFile, "LIBS:%s\n", CONV_TO_UTF8( Name ) ) == EOF ) { if( fprintf( aFile, "%s %s %d", EESCHEMA_FILE_STAMP, SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION ) == EOF ) return FALSE; if( fprintf( aFile, " date %s\n", CONV_TO_UTF8(datetime) ) == EOF ) return FALSE; if( fprintf( aFile, "LIBS:%s\n", CONV_TO_UTF8( Name ) ) == EOF ) return FALSE; } SaveLayers( aFile ); Loading gerbview/makefile.include +2 −87 Original line number Diff line number Diff line Loading @@ -61,14 +61,6 @@ setpage.o: ../share/setpage.cpp drawframe.o: ../share/drawframe.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp controle.o: controle.cpp hotkeys.o: hotkeys.cpp hotkeys.h set_color.o: set_color.cpp set_color.h files.o: files.cpp class_board_connected_item.o: ../pcbnew/class_board_connected_item.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp Loading Loading @@ -96,8 +88,6 @@ sel_layer.o: ../pcbnew/sel_layer.cpp wxprint.o: ../share/wxprint.cpp ../share/dialog_print.cpp ../share/dialog_print.h $(CXX) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp lay2plot.o: lay2plot.cpp classpcb.o: ../pcbnew/classpcb.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp Loading @@ -116,83 +106,8 @@ collectors.o: ../pcbnew/collectors.cpp class_track.o: ../pcbnew/class_track.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(TARGET).o: $(TARGET).cpp gerbview_config.o: gerbview_config.cpp gerbview_config.h tracepcb.o: tracepcb.cpp block.o: block.cpp trpiste.o: trpiste.cpp surbrill.o: surbrill.cpp pcbtexte.o: pcbtexte.cpp zoom.o: ../share/zoom.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp affiche.o: affiche.cpp reglage.o: reglage.cpp editrack.o: editrack.cpp deltrack.o: deltrack.cpp track.o: track.cpp editrout.o: editrout.cpp autorout.h editmod.o: editmod.cpp autorout.h editpads.o: editpads.cpp editedge.o: editedge.cpp cotation.o: cotation.cpp editexte.o: editexte.cpp clean.o: clean.cpp autorout.h pcbplot.o: pcbplot.cpp plothpgl.o: plothpgl.cpp plotgerb.o: plotgerb.cpp pcbplot.h printps.o: printps.cpp pcbplot.h readgerb.o: readgerb.cpp pcbplot.h plot_rtn.o: plot_rtn.cpp pcbplot.h gendrill.o: gendrill.cpp pcbplot.h librairi.o: librairi.cpp autorout.h librairi.h docedit.o: docedit.cpp edgemod.o: edgemod.cpp autorout.o: autorout.cpp cell.h autorout.fct autorout.h setlayer.o: setlayer.cpp dist.o: dist.cpp cell.h autorout.fct zones.o: zones.cpp cell.h autorout.fct undelete.o: undelete.cpp ioascii.o: ioascii.cpp chrono.o: chrono.cpp pcbnew.h coordbox.o: coordbox.cpp mirepcb.o: mirepcb.cpp dragsegm.o: dragsegm.cpp drag.h undelete.o: ../pcbnew/undelete.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp todo.txt +0 −16 Original line number Diff line number Diff line Loading @@ -39,15 +39,6 @@ asked by: Dick Hollenbeck class editor from a UI perspective. 2008-Feb-8 Assigned To: Jean-Pierre, per his email asked by: Dick Hollenbeck ================================================================================ 1) Remove the requirement to route tracks or vias for situations where a zone is. 2) Support connections from zones to vias, and zones to tracks, and zones to pads. Review the GEDA source code and other sources to gather ideas before doing 2). 2008-Feb-8 Assigned To: dick asked by: dick ================================================================================ Loading @@ -63,13 +54,6 @@ asked by: jp Charras Use the collector classes in eeschema. 2007-Nov-30 Assigned To: nobody asked by: Dick Hollenbeck ================================================================================ wxString DateAndTime() It seems the above function should be using a more user friendly "local time", not gmtime. 2008-Apr-29 Assigned To: asked by: Dick Hollenbeck Loading Loading
common/string.cpp +52 −67 Original line number Diff line number Diff line /****************************************************************************/ /* MODULE: string.cpp */ /* string.cpp */ /* ROLE: fonctions complementaires de traitement de chaines de caracteres */ /****************************************************************************/ #include "fctsys.h" #include <time.h> #include "common.h" #include "macros.h" /*********************************************************************/ Loading @@ -24,7 +25,7 @@ int ReadDelimitedText( char* dest, char* source, int NbMaxChar ) for( ii = 0, jj = 0; ii < NbMaxChar - 1; jj++, source++ ) { if( *source == 0 ) break; /* fin de ligne */ break; /* E.O.L. */ if( *source == '"' ) /* delimiteur trouve */ { if( flag ) Loading @@ -37,7 +38,7 @@ int ReadDelimitedText( char* dest, char* source, int NbMaxChar ) } } *dest = 0; /* Null terminaison */ *dest = 0; /* Null termined */ return jj; } Loading @@ -46,8 +47,8 @@ int ReadDelimitedText( char* dest, char* source, int NbMaxChar ) char* StrPurge( char* text ) /********************************/ /* Supprime les caracteres Space en debut de la ligne text * retourne un pointeur sur le 1er caractere non Space de text /* Remove training space in text * return a pointer on the first not space char in text */ { char* ptspace; Loading @@ -72,10 +73,10 @@ char* StrPurge( char* text ) char* GetLine( FILE* File, char* Line, int* LineNum, int SizeLine ) /*****************************************************************/ /* Routine de lecture de 1 ligne utile * retourne la 1ere ligne utile lue. * elimine lignes vides et commentaires * incremente *LineNum a chaque ligne lue /* Read lines from File * Skip void lines and comments (starting by #) * return the first non void line. * increments *LineNum for ecah line */ { do { Loading @@ -92,39 +93,37 @@ char* GetLine( FILE* File, char* Line, int* LineNum, int SizeLine ) /*******************************/ char* DateAndTime( char* Line ) char* DateAndTime( char* aBuffer ) /*******************************/ /* Retourne la chaine de caractere donnant date+heure */ /* return in aBuffer the date and time * time is the local time. */ { time_t Time_Buf; struct tm* Date; wxString datetime; time( &Time_Buf ); Date = gmtime( &Time_Buf ); sprintf( Line, "%d/%d/%d-%2.2d:%2.2d:%2.2d", Date->tm_mday, Date->tm_mon + 1, Date->tm_year + 1900, Date->tm_hour, Date->tm_min, Date->tm_sec ); datetime = DateAndTime(); strcpy( aBuffer, CONV_TO_UTF8( datetime ) ); return Line; return aBuffer; } /*******************************/ wxString DateAndTime() /*******************************/ /* Retourne la chaine de caractere donnant date+heure */ /* return a wxString filled with the date and time * note: does the same thing than strftime() * time is the local time. */ { time_t Time_Buf; struct tm* Date; wxString Line; time( &Time_Buf ); Date = gmtime( &Time_Buf ); wxDateTime datetime = wxDateTime::Now(); Line.Printf( wxT( "%d/%d/%d-%2.2d:%2.2d:%2.2d" ), Date->tm_mday, Date->tm_mon + 1, Date->tm_year + 1900, Date->tm_hour, Date->tm_min, Date->tm_sec ); datetime.SetCountry( wxDateTime::Country_Default ); Line = datetime.Format( wxDefaultDateTimeFormat, wxDateTime::Local ); return Line; } Loading @@ -135,9 +134,9 @@ int StrLenNumCmp( const wxChar* str1, const wxChar* str2, int NbMax ) /************************************************************/ /* * routine (compatible qsort() ) de comparaison pour classement alphabtique * Analogue a strncmp() mais les nombres sont compars selon leur valeur numrique * et non pas par leur code ascii * sort() function * Same as strncmp() but numbers in strings * are compared according to the value, not the ascii value of each digit */ { int i; Loading @@ -148,7 +147,7 @@ int StrLenNumCmp( const wxChar* str1, const wxChar* str2, int NbMax ) for( i = 0; i < NbMax; i++ ) { if( isdigit( *str1 ) && isdigit( *str2 ) ) /* nombres en jeu */ if( isdigit( *str1 ) && isdigit( *str2 ) ) /* digit found */ { nb1 = 0; nb2 = 0; while( isdigit( *str1 ) ) Loading Loading @@ -185,10 +184,9 @@ int StrNumICmp( const wxChar* str1, const wxChar* str2 ) /***********************************************/ /* * routine (compatible qsort() ) de comparaison pour classement alphabtique, * avec lower case == upper case. * Analogue a stricmp() mais les nombres sont compars selon leur valeur numrique * et non pas par leur code ascii * sort() function * Same as stricmp() but numbers in strings * are compared according to the value, not the ascii value of each digit */ { return StrLenNumICmp( str1, str2, 32735 ); Loading @@ -200,10 +198,9 @@ int StrLenNumICmp( const wxChar* str1, const wxChar* str2, int NbMax ) /**************************************************************/ /* * routine (compatible qsort() ) de comparaison pour classement alphabetique, * avec lower case == upper case. * Analogue a stricmp() mais les nombres sont compares selon leur valeur numerique * et non pas par leur code ascii * sort() function * Same as strnicmp() but numbers in strings * are compared according to the value, not the ascii value of each digit */ { int i; Loading @@ -214,7 +211,7 @@ int StrLenNumICmp( const wxChar* str1, const wxChar* str2, int NbMax ) for( i = 0; i < NbMax; i++ ) { if( isdigit( *str1 ) && isdigit( *str2 ) ) /* nombres en jeu */ if( isdigit( *str1 ) && isdigit( *str2 ) ) /* find number */ { nb1 = 0; nb2 = 0; while( isdigit( *str1 ) ) Loading Loading @@ -265,13 +262,17 @@ bool WildCompareString( const wxString& pattern, const wxString& string_to_tst, if( case_sensitive ) { wild = pattern.GetData(); string = string_to_tst.GetData(); wild = pattern.GetData(); string = string_to_tst.GetData(); } else { _pattern = pattern; _pattern.MakeUpper(); _string_to_tst = string_to_tst; _string_to_tst.MakeUpper(); wild = _pattern.GetData(); string = _string_to_tst.GetData(); _pattern = pattern; _pattern.MakeUpper(); _string_to_tst = string_to_tst; _string_to_tst.MakeUpper(); wild = _pattern.GetData(); string = _string_to_tst.GetData(); } while( (*string) && (*wild != '*') ) Loading Loading @@ -311,29 +312,14 @@ bool WildCompareString( const wxString& pattern, const wxString& string_to_tst, } /***********************************************/ void ChangeSpaces( char* Text, int NewChar ) /***********************************************/ /* Change dans un texte les espaces en NewChar */ { if( Text == NULL ) return; while( *Text ) { if( *Text == ' ' ) *Text = (char) NewChar; Text++; } } /***************************/ char* to_point( char* Text ) /**************************/ /* convertit les , en . dans une chaine. utilis pour compenser /* convertit les , en . dans une chaine. utilise pour compenser * l'internalisation de la fct printf * qui genere les flottants avec une virgule au lieu du point * Obsolete: use SetLocaleTo_C_standard insteed */ { char* line = Text; Loading Loading @@ -372,4 +358,3 @@ char* strupper( char* Text ) return Text; }
eeschema/save_schemas.cpp +10 −5 Original line number Diff line number Diff line Loading @@ -119,6 +119,8 @@ bool SCH_SCREEN::Save( FILE* aFile ) const wxString Name, msg; Ki_PageDescr* PlotSheet; wxString datetime = DateAndTime( ); LibNames = GetLibNames(); for( int ii = 0; LibNames[ii] != NULL; ii++ ) { Loading @@ -130,12 +132,15 @@ bool SCH_SCREEN::Save( FILE* aFile ) const MyFree( LibNames ); // Creates header if( fprintf( aFile, "%s %s %d\n", EESCHEMA_FILE_STAMP, SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION ) == EOF || fprintf( aFile, "LIBS:%s\n", CONV_TO_UTF8( Name ) ) == EOF ) { if( fprintf( aFile, "%s %s %d", EESCHEMA_FILE_STAMP, SCHEMATIC_HEAD_STRING, EESCHEMA_VERSION ) == EOF ) return FALSE; if( fprintf( aFile, " date %s\n", CONV_TO_UTF8(datetime) ) == EOF ) return FALSE; if( fprintf( aFile, "LIBS:%s\n", CONV_TO_UTF8( Name ) ) == EOF ) return FALSE; } SaveLayers( aFile ); Loading
gerbview/makefile.include +2 −87 Original line number Diff line number Diff line Loading @@ -61,14 +61,6 @@ setpage.o: ../share/setpage.cpp drawframe.o: ../share/drawframe.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp controle.o: controle.cpp hotkeys.o: hotkeys.cpp hotkeys.h set_color.o: set_color.cpp set_color.h files.o: files.cpp class_board_connected_item.o: ../pcbnew/class_board_connected_item.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp Loading Loading @@ -96,8 +88,6 @@ sel_layer.o: ../pcbnew/sel_layer.cpp wxprint.o: ../share/wxprint.cpp ../share/dialog_print.cpp ../share/dialog_print.h $(CXX) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp lay2plot.o: lay2plot.cpp classpcb.o: ../pcbnew/classpcb.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp Loading @@ -116,83 +106,8 @@ collectors.o: ../pcbnew/collectors.cpp class_track.o: ../pcbnew/class_track.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp $(TARGET).o: $(TARGET).cpp gerbview_config.o: gerbview_config.cpp gerbview_config.h tracepcb.o: tracepcb.cpp block.o: block.cpp trpiste.o: trpiste.cpp surbrill.o: surbrill.cpp pcbtexte.o: pcbtexte.cpp zoom.o: ../share/zoom.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../share/$*.cpp affiche.o: affiche.cpp reglage.o: reglage.cpp editrack.o: editrack.cpp deltrack.o: deltrack.cpp track.o: track.cpp editrout.o: editrout.cpp autorout.h editmod.o: editmod.cpp autorout.h editpads.o: editpads.cpp editedge.o: editedge.cpp cotation.o: cotation.cpp editexte.o: editexte.cpp clean.o: clean.cpp autorout.h pcbplot.o: pcbplot.cpp plothpgl.o: plothpgl.cpp plotgerb.o: plotgerb.cpp pcbplot.h printps.o: printps.cpp pcbplot.h readgerb.o: readgerb.cpp pcbplot.h plot_rtn.o: plot_rtn.cpp pcbplot.h gendrill.o: gendrill.cpp pcbplot.h librairi.o: librairi.cpp autorout.h librairi.h docedit.o: docedit.cpp edgemod.o: edgemod.cpp autorout.o: autorout.cpp cell.h autorout.fct autorout.h setlayer.o: setlayer.cpp dist.o: dist.cpp cell.h autorout.fct zones.o: zones.cpp cell.h autorout.fct undelete.o: undelete.cpp ioascii.o: ioascii.cpp chrono.o: chrono.cpp pcbnew.h coordbox.o: coordbox.cpp mirepcb.o: mirepcb.cpp dragsegm.o: dragsegm.cpp drag.h undelete.o: ../pcbnew/undelete.cpp $(CXX) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp
todo.txt +0 −16 Original line number Diff line number Diff line Loading @@ -39,15 +39,6 @@ asked by: Dick Hollenbeck class editor from a UI perspective. 2008-Feb-8 Assigned To: Jean-Pierre, per his email asked by: Dick Hollenbeck ================================================================================ 1) Remove the requirement to route tracks or vias for situations where a zone is. 2) Support connections from zones to vias, and zones to tracks, and zones to pads. Review the GEDA source code and other sources to gather ideas before doing 2). 2008-Feb-8 Assigned To: dick asked by: dick ================================================================================ Loading @@ -63,13 +54,6 @@ asked by: jp Charras Use the collector classes in eeschema. 2007-Nov-30 Assigned To: nobody asked by: Dick Hollenbeck ================================================================================ wxString DateAndTime() It seems the above function should be using a more user friendly "local time", not gmtime. 2008-Apr-29 Assigned To: asked by: Dick Hollenbeck Loading