Commit 795e069a authored by dickelbeck's avatar dickelbeck

fix backanno for unicode and eeschema's debug build

parent 7327197c
...@@ -36,6 +36,7 @@ set(CVPCB_SRCS ...@@ -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
......
/**************************************************************** /****************************************************************
* EESchema: backanno.cpp * EESchema: backanno.cpp
* (functions for backannotating Footprint info * (functions for backannotating Footprint info
****************************************************************/ ****************************************************************/
#include "fctsys.h" #include "fctsys.h"
#include "gr_basic.h" #include "gr_basic.h"
...@@ -18,37 +18,42 @@ ...@@ -18,37 +18,42 @@
#include "protos.h" #include "protos.h"
/**************************************************************/ /**************************************************************/
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];
SCH_ITEM* DrawList = NULL; SCH_ITEM* DrawList = NULL;
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 ) { {
for( cp=Ref; *cp ; cp++ ) if( sscanf( Line, "comp = \"%s module = \"%s", Ref, FootPrint ) == 2 )
{
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) ...@@ -56,6 +61,7 @@ bool WinEDA_SchematicFrame::ProcessStuffFile(FILE* StuffFile)
return true; return true;
} }
/**************************************************************/ /**************************************************************/
bool WinEDA_SchematicFrame::ReadInputStuffFile() bool WinEDA_SchematicFrame::ReadInputStuffFile()
/**************************************************************/ /**************************************************************/
...@@ -67,7 +73,7 @@ bool WinEDA_SchematicFrame::ReadInputStuffFile() ...@@ -67,7 +73,7 @@ bool WinEDA_SchematicFrame::ReadInputStuffFile()
FILE* StuffFile; FILE* StuffFile;
wxString msg; wxString msg;
filename = EDA_FileSelector(_("Load Stuff File"), filename = EDA_FileSelector( _( "Load Stuff File" ),
wxEmptyString, /* Chemin par defaut */ wxEmptyString, /* Chemin par defaut */
wxEmptyString, /* nom fichier par defaut */ wxEmptyString, /* nom fichier par defaut */
wxT( ".stf" ), /* extension par defaut */ wxT( ".stf" ), /* extension par defaut */
...@@ -76,24 +82,26 @@ bool WinEDA_SchematicFrame::ReadInputStuffFile() ...@@ -76,24 +82,26 @@ bool WinEDA_SchematicFrame::ReadInputStuffFile()
wxFD_OPEN, wxFD_OPEN,
FALSE FALSE
); );
if ( filename.IsEmpty())
if( filename.IsEmpty() )
return FALSE; return FALSE;
Line = g_Main_Title + wxT(" ") + GetBuildVersion(); Line = g_Main_Title + wxT( " " ) + GetBuildVersion();
Line += wxT(" ") + filename; Line += wxT( " " ) + filename;
SetTitle(Line); SetTitle( Line );
if( filename.IsEmpty() ) if( filename.IsEmpty() )
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;
} }
...@@ -129,7 +129,16 @@ public: ...@@ -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();
bool ProcessStuffFile(FILE* filename);
/**
* 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 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 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment