Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
fe6591b2
Commit
fe6591b2
authored
Aug 31, 2010
by
Dick Hollenbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
formatting cleanups
parent
b2a09cc2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
38 deletions
+42
-38
load_one_schematic_file.cpp
eeschema/load_one_schematic_file.cpp
+42
-38
No files found.
eeschema/load_one_schematic_file.cpp
View file @
fe6591b2
...
...
@@ -52,18 +52,21 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen,
SCH_BUS_ENTRY
*
busEntry
;
SCH_NO_CONNECT
*
NoConnectStruct
;
int
LineCount
;
wxString
MsgDiag
;
/* Error and log messages */
wxString
MsgDiag
;
// Error and log messages
FILE
*
f
;
if
(
screen
==
NULL
)
return
FALSE
;
if
(
FullFileName
.
IsEmpty
()
)
return
FALSE
;
screen
->
SetCurItem
(
NULL
);
screen
->
m_FileName
=
FullFileName
;
// D(printf("LoadOneEEFile:%s\n", CONV_TO_UTF8( FullFileName ) ); )
LineCount
=
1
;
if
(
(
f
=
wxFopen
(
FullFileName
,
wxT
(
"rt"
)
)
)
==
NULL
)
{
...
...
@@ -85,7 +88,7 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen,
return
FALSE
;
}
//get the file version here. TODO: Support version numbers > 9
//
get the file version here. TODO: Support version numbers > 9
char
version
=
Line
[
9
+
sizeof
(
SCHEMATIC_HEAD_STRING
)];
int
ver
=
version
-
'0'
;
if
(
ver
>
EESCHEMA_VERSION
)
...
...
@@ -136,7 +139,7 @@ again." );
switch
(
Line
[
0
]
)
{
case
'$'
:
/
* identification block */
case
'$'
:
/
/ identification block
if
(
Line
[
1
]
==
'C'
)
Failed
=
ReadPartDescr
(
this
,
Line
,
f
,
MsgDiag
,
&
LineCount
,
screen
);
...
...
@@ -145,31 +148,30 @@ again." );
else
if
(
Line
[
1
]
==
'D'
)
Failed
=
ReadSchemaDescr
(
this
,
Line
,
f
,
MsgDiag
,
&
LineCount
,
screen
);
else
if
(
Line
[
1
]
==
'T'
)
//text part
{
printf
(
"**** TEXT PART
\n
"
);
SCH_ITEM
*
Struct
;
Struct
=
ReadTextDescr
(
f
,
MsgDiag
,
Line
,
sizeof
(
Line
),
&
LineCount
,
version
);
if
(
Struct
)
{
Struct
->
SetNext
(
screen
->
EEDrawList
);
screen
->
EEDrawList
=
Struct
;
}
else
else
if
(
Line
[
1
]
==
'T'
)
// text part
{
Failed
=
true
;
}
}
printf
(
"**** TEXT PART
\n
"
)
;
SCH_ITEM
*
Struct
;
Struct
=
ReadTextDescr
(
f
,
MsgDiag
,
Line
,
sizeof
(
Line
),
&
LineCount
,
version
);
if
(
Struct
)
{
Struct
->
SetNext
(
screen
->
EEDrawList
);
screen
->
EEDrawList
=
Struct
;
}
else
{
Failed
=
true
;
}
}
break
;
case
'L'
:
/
* Its a library item. */
case
'L'
:
/
/ Its a library item.
Failed
=
ReadPartDescr
(
this
,
Line
,
f
,
MsgDiag
,
&
LineCount
,
screen
);
break
;
case
'W'
:
/* Its a Segment (WIRE or BUS) item. */
case
'W'
:
// Its a Segment (WIRE or BUS) item.
if
(
sscanf
(
SLine
,
"%s %s"
,
Name1
,
Name2
)
!=
2
)
{
MsgDiag
.
Printf
(
wxT
(
"EESchema file segment error at line %d, aborted"
),
...
...
@@ -178,7 +180,9 @@ again." );
Failed
=
true
;
break
;
}
layer
=
LAYER_NOTES
;
if
(
Name1
[
0
]
==
'W'
)
layer
=
LAYER_WIRE
;
if
(
Name1
[
0
]
==
'B'
)
...
...
@@ -207,8 +211,7 @@ again." );
}
break
;
case
'E'
:
/* Its a WIRE or BUS item. */
case
'E'
:
// Its a WIRE or BUS item.
if
(
sscanf
(
SLine
,
"%s %s"
,
Name1
,
Name2
)
!=
2
)
{
MsgDiag
.
Printf
(
wxT
(
"EESchema file record struct error at line %d, aborted"
),
...
...
@@ -224,6 +227,7 @@ again." );
busEntry
=
new
SCH_BUS_ENTRY
(
wxPoint
(
0
,
0
),
'\\'
,
ii
);
LineCount
++
;
if
(
fgets
(
Line
,
256
-
1
,
f
)
==
NULL
||
sscanf
(
Line
,
"%d %d %d %d "
,
&
busEntry
->
m_Pos
.
x
,
&
busEntry
->
m_Pos
.
y
,
&
busEntry
->
m_Size
.
x
,
&
busEntry
->
m_Size
.
y
)
!=
4
)
...
...
@@ -245,7 +249,7 @@ again." );
}
break
;
case
'P'
:
/
* Its a polyline item. */
case
'P'
:
/
/ Its a polyline item.
if
(
sscanf
(
SLine
,
"%s %s %d"
,
Name1
,
Name2
,
&
ii
)
!=
3
)
{
MsgDiag
.
Printf
(
wxT
(
"EESchema file polyline struct error at line %d, aborted"
),
...
...
@@ -287,7 +291,7 @@ at line %d, aborted" ),
}
break
;
case
'C'
:
/
* It is a connection item. */
case
'C'
:
/
/ It is a connection item.
ConnectionStruct
=
new
SCH_JUNCTION
(
wxPoint
(
0
,
0
)
);
if
(
sscanf
(
SLine
,
"%s %d %d"
,
Name1
,
&
ConnectionStruct
->
m_Pos
.
x
,
...
...
@@ -307,7 +311,7 @@ at line %d, aborted" ),
}
break
;
case
'N'
:
/
* It is a NoConnect item. */
case
'N'
:
/
/ It is a NoConnect item.
if
(
sscanf
(
SLine
,
"%s %d %d"
,
Name1
,
&
pos
.
x
,
&
pos
.
y
)
!=
3
)
{
MsgDiag
.
Printf
(
wxT
(
"EESchema file NoConnect struct error at line %d, aborted"
),
...
...
@@ -323,25 +327,25 @@ at line %d, aborted" ),
}
break
;
case
'K'
:
/
* It is a Marker item. */
case
'K'
:
/
/ It is a Marker item.
// Markers are no more read from file. they are only created on
// demand in schematic
break
;
case
'T'
:
/* It is a text item. */
{
SCH_ITEM
*
Struct
;
Struct
=
ReadTextDescr
(
f
,
MsgDiag
,
Line
,
sizeof
(
Line
),
&
LineCount
,
version
);
if
(
Struct
)
case
'T'
:
// It is a text item.
{
Struct
->
SetNext
(
screen
->
EEDrawList
);
screen
->
EEDrawList
=
Struct
;
SCH_ITEM
*
Struct
;
Struct
=
ReadTextDescr
(
f
,
MsgDiag
,
Line
,
sizeof
(
Line
),
&
LineCount
,
version
);
if
(
Struct
)
{
Struct
->
SetNext
(
screen
->
EEDrawList
);
screen
->
EEDrawList
=
Struct
;
}
else
Failed
=
true
;
}
else
Failed
=
true
;
break
;
}
default
:
Failed
=
true
;
...
...
@@ -381,7 +385,7 @@ at line %d, aborted" ),
MsgDiag
=
_
(
"Done Loading "
)
+
screen
->
m_FileName
;
PrintMsg
(
MsgDiag
);
return
true
;
/
* Although it may be that file is only partially loaded. */
return
true
;
/
/ Although it may be that file is only partially loaded.
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment