fix backanno for unicode and eeschema's debug build

This commit is contained in:
dickelbeck 2008-05-07 23:41:05 +00:00
parent 7327197c17
commit 795e069a7a
3 changed files with 71 additions and 53 deletions

View File

@ -36,6 +36,7 @@ set(CVPCB_SRCS
set(CVPCB_EXTRA_SRCS set(CVPCB_EXTRA_SRCS
../pcbnew/basepcbframe.cpp ../pcbnew/basepcbframe.cpp
../pcbnew/class_board.cpp ../pcbnew/class_board.cpp
../pcbnew/class_board_item.cpp
../pcbnew/class_cotation.cpp ../pcbnew/class_cotation.cpp
../pcbnew/class_drawsegment.cpp ../pcbnew/class_drawsegment.cpp
../pcbnew/class_edge_mod.cpp ../pcbnew/class_edge_mod.cpp

View File

@ -20,9 +20,6 @@
/**************************************************************/ /**************************************************************/
bool WinEDA_SchematicFrame::ProcessStuffFile( FILE* StuffFile ) bool WinEDA_SchematicFrame::ProcessStuffFile( FILE* StuffFile )
/**************************************************************/ /**************************************************************/
/* get footprint info from each line in the Stuff File by Ref Desg
*/
{ {
int LineNum = 0; int LineNum = 0;
char* cp, Ref[256], FootPrint[256], Line[1024]; char* cp, Ref[256], FootPrint[256], Line[1024];
@ -30,25 +27,33 @@ bool WinEDA_SchematicFrame::ProcessStuffFile(FILE* StuffFile)
SCH_COMPONENT* Cmp; SCH_COMPONENT* Cmp;
PartTextStruct* TextField; PartTextStruct* TextField;
while( GetLine( StuffFile, Line, &LineNum, sizeof(Line) ) ) { while( GetLine( StuffFile, Line, &LineNum, sizeof(Line) ) )
if( sscanf( Line, "comp = \"%s module = \"%s", Ref, FootPrint) == 2 ) { {
if( sscanf( Line, "comp = \"%s module = \"%s", Ref, FootPrint ) == 2 )
{
for( cp = Ref; *cp; cp++ ) for( cp = Ref; *cp; cp++ )
if( *cp == '"' ) if( *cp == '"' )
*cp = 0; *cp = 0;
for( cp = FootPrint; *cp; cp++ ) for( cp = FootPrint; *cp; cp++ )
if( *cp == '"' ) if( *cp == '"' )
*cp = 0; *cp = 0;
// printf("'%s' '%s'\n", Ref, FootPrint); // printf("'%s' '%s'\n", Ref, FootPrint);
wxString reference = CONV_FROM_UTF8( Ref );
DrawList = WinEDA_SchematicFrame::FindComponentAndItem( DrawList = WinEDA_SchematicFrame::FindComponentAndItem(
Ref, TRUE, 2, wxEmptyString, false); reference, TRUE, 2, wxEmptyString, false );
if( DrawList == NULL ) if( DrawList == NULL )
continue; continue;
if( DrawList->Type() == TYPE_SCH_COMPONENT ) { if( DrawList->Type() == TYPE_SCH_COMPONENT )
{
Cmp = (SCH_COMPONENT*) DrawList; Cmp = (SCH_COMPONENT*) DrawList;
TextField = &Cmp->m_Field[FOOTPRINT]; TextField = &Cmp->m_Field[FOOTPRINT];
TextField->m_Text = FootPrint; TextField->m_Text = CONV_FROM_UTF8( FootPrint );
} }
} }
} }
@ -56,6 +61,7 @@ bool WinEDA_SchematicFrame::ProcessStuffFile(FILE* StuffFile)
return true; return true;
} }
/**************************************************************/ /**************************************************************/
bool WinEDA_SchematicFrame::ReadInputStuffFile() bool WinEDA_SchematicFrame::ReadInputStuffFile()
/**************************************************************/ /**************************************************************/
@ -76,6 +82,7 @@ bool WinEDA_SchematicFrame::ReadInputStuffFile()
wxFD_OPEN, wxFD_OPEN,
FALSE FALSE
); );
if( filename.IsEmpty() ) if( filename.IsEmpty() )
return FALSE; return FALSE;
@ -87,13 +94,14 @@ bool WinEDA_SchematicFrame::ReadInputStuffFile()
return FALSE; return FALSE;
StuffFile = wxFopen( filename, wxT( "rt" ) ); StuffFile = wxFopen( filename, wxT( "rt" ) );
if( StuffFile == NULL ) { if( StuffFile == NULL )
{
msg.Printf( _( "Failed to open Stuff File <%s>" ), filename.GetData() ); msg.Printf( _( "Failed to open Stuff File <%s>" ), filename.GetData() );
DisplayError( this, msg, 20 ); DisplayError( this, msg, 20 );
return FALSE; return FALSE;
} }
ProcessStuffFile( StuffFile ); ProcessStuffFile( StuffFile );
return TRUE; return TRUE;
} }

View File

@ -129,7 +129,16 @@ public:
int LoadOneEEProject( const wxString& FileName, bool IsNew ); int LoadOneEEProject( const wxString& FileName, bool IsNew );
bool LoadOneEEFile( SCH_SCREEN* screen, const wxString& FullFileName ); bool LoadOneEEFile( SCH_SCREEN* screen, const wxString& FullFileName );
bool ReadInputStuffFile(); bool ReadInputStuffFile();
/**
* Function ProcessStuffFile
* gets footprint info from each line in the Stuff File by Ref Desg
* @param filename The file to read from.
* @return bool - true if success, else true.
*/
bool ProcessStuffFile( FILE* filename ); bool ProcessStuffFile( FILE* filename );
bool SaveEEFile( SCH_SCREEN* screen, int FileSave ); bool SaveEEFile( SCH_SCREEN* screen, int FileSave );
SCH_SCREEN* CreateNewScreen( SCH_SCREEN* OldScreen, int TimeStamp ); SCH_SCREEN* CreateNewScreen( SCH_SCREEN* OldScreen, int TimeStamp );