fix backanno for unicode and eeschema's debug build
This commit is contained in:
parent
7327197c17
commit
795e069a7a
|
@ -36,6 +36,7 @@ set(CVPCB_SRCS
|
|||
set(CVPCB_EXTRA_SRCS
|
||||
../pcbnew/basepcbframe.cpp
|
||||
../pcbnew/class_board.cpp
|
||||
../pcbnew/class_board_item.cpp
|
||||
../pcbnew/class_cotation.cpp
|
||||
../pcbnew/class_drawsegment.cpp
|
||||
../pcbnew/class_edge_mod.cpp
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/****************************************************************
|
||||
* EESchema: backanno.cpp
|
||||
* (functions for backannotating Footprint info
|
||||
****************************************************************/
|
||||
* EESchema: backanno.cpp
|
||||
* (functions for backannotating Footprint info
|
||||
****************************************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "gr_basic.h"
|
||||
|
@ -18,82 +18,90 @@
|
|||
#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;
|
||||
char *cp, Ref[256], FootPrint[256], Line[1024];
|
||||
SCH_ITEM* DrawList = NULL;
|
||||
SCH_COMPONENT* Cmp ;
|
||||
PartTextStruct* TextField ;
|
||||
int LineNum = 0;
|
||||
char* cp, Ref[256], FootPrint[256], Line[1024];
|
||||
SCH_ITEM* DrawList = NULL;
|
||||
SCH_COMPONENT* Cmp;
|
||||
PartTextStruct* TextField;
|
||||
|
||||
while( GetLine( StuffFile, Line, &LineNum, sizeof(Line) ) ) {
|
||||
if( sscanf( Line, "comp = \"%s module = \"%s", Ref, FootPrint) == 2 ) {
|
||||
for( cp=Ref; *cp ; cp++ )
|
||||
if( *cp == '"' )
|
||||
*cp = 0;
|
||||
for( cp=FootPrint; *cp ; cp++ )
|
||||
if( *cp == '"' )
|
||||
*cp = 0;
|
||||
// printf("'%s' '%s'\n", Ref, FootPrint);
|
||||
DrawList = WinEDA_SchematicFrame::FindComponentAndItem(
|
||||
Ref, TRUE, 2, wxEmptyString, false);
|
||||
|
||||
if( DrawList == NULL )
|
||||
continue;
|
||||
while( GetLine( StuffFile, Line, &LineNum, sizeof(Line) ) )
|
||||
{
|
||||
if( sscanf( Line, "comp = \"%s module = \"%s", Ref, FootPrint ) == 2 )
|
||||
{
|
||||
for( cp = Ref; *cp; cp++ )
|
||||
if( *cp == '"' )
|
||||
*cp = 0;
|
||||
|
||||
if( DrawList->Type() == TYPE_SCH_COMPONENT ) {
|
||||
Cmp = (SCH_COMPONENT*) DrawList;
|
||||
TextField = &Cmp->m_Field[FOOTPRINT];
|
||||
TextField->m_Text = FootPrint;
|
||||
}
|
||||
}
|
||||
for( cp = FootPrint; *cp; cp++ )
|
||||
if( *cp == '"' )
|
||||
*cp = 0;
|
||||
|
||||
// printf("'%s' '%s'\n", Ref, FootPrint);
|
||||
|
||||
wxString reference = CONV_FROM_UTF8( Ref );
|
||||
|
||||
DrawList = WinEDA_SchematicFrame::FindComponentAndItem(
|
||||
reference, TRUE, 2, wxEmptyString, false );
|
||||
|
||||
if( DrawList == NULL )
|
||||
continue;
|
||||
|
||||
if( DrawList->Type() == TYPE_SCH_COMPONENT )
|
||||
{
|
||||
Cmp = (SCH_COMPONENT*) DrawList;
|
||||
TextField = &Cmp->m_Field[FOOTPRINT];
|
||||
TextField->m_Text = CONV_FROM_UTF8( FootPrint );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**************************************************************/
|
||||
bool WinEDA_SchematicFrame::ReadInputStuffFile()
|
||||
bool WinEDA_SchematicFrame::ReadInputStuffFile()
|
||||
/**************************************************************/
|
||||
|
||||
/* Backann footprint info to schematic.
|
||||
*/
|
||||
{
|
||||
wxString Line, filename;
|
||||
FILE* StuffFile;
|
||||
wxString msg;
|
||||
FILE* StuffFile;
|
||||
wxString msg;
|
||||
|
||||
filename = EDA_FileSelector(_("Load Stuff File"),
|
||||
wxEmptyString, /* Chemin par defaut */
|
||||
wxEmptyString, /* nom fichier par defaut */
|
||||
wxT( ".stf" ), /* extension par defaut */
|
||||
wxT( "*.stf" ), /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
FALSE
|
||||
);
|
||||
if ( filename.IsEmpty())
|
||||
return FALSE;
|
||||
filename = EDA_FileSelector( _( "Load Stuff File" ),
|
||||
wxEmptyString, /* Chemin par defaut */
|
||||
wxEmptyString, /* nom fichier par defaut */
|
||||
wxT( ".stf" ), /* extension par defaut */
|
||||
wxT( "*.stf" ), /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_OPEN,
|
||||
FALSE
|
||||
);
|
||||
|
||||
Line = g_Main_Title + wxT(" ") + GetBuildVersion();
|
||||
Line += wxT(" ") + filename;
|
||||
SetTitle(Line);
|
||||
if( filename.IsEmpty() )
|
||||
return FALSE;
|
||||
|
||||
Line = g_Main_Title + wxT( " " ) + GetBuildVersion();
|
||||
Line += wxT( " " ) + filename;
|
||||
SetTitle( Line );
|
||||
|
||||
if( filename.IsEmpty() )
|
||||
return FALSE;
|
||||
|
||||
StuffFile = wxFopen( filename, wxT( "rt" ) );
|
||||
if( StuffFile == NULL ) {
|
||||
if( StuffFile == NULL )
|
||||
{
|
||||
msg.Printf( _( "Failed to open Stuff File <%s>" ), filename.GetData() );
|
||||
DisplayError( this, msg, 20 );
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
ProcessStuffFile( StuffFile );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -128,8 +128,17 @@ public:
|
|||
void SaveProject();
|
||||
int LoadOneEEProject( const wxString& FileName, bool IsNew );
|
||||
bool LoadOneEEFile( SCH_SCREEN* screen, const wxString& FullFileName );
|
||||
bool ReadInputStuffFile();
|
||||
bool ProcessStuffFile(FILE* filename);
|
||||
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 SaveEEFile( SCH_SCREEN* screen, int FileSave );
|
||||
SCH_SCREEN* CreateNewScreen( SCH_SCREEN* OldScreen, int TimeStamp );
|
||||
|
||||
|
|
Loading…
Reference in New Issue