KiCad PCB EDA Suite
Loading...
Searching...
No Matches
refdes_utils.cpp
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Copyright The KiCad Developers, see AUTHORS.TXT for contributors.
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <https://www.gnu.org/licenses/>.
18
*/
19
20
#include <
refdes_utils.h
>
21
22
#include <
string_utils.h
>
23
24
#include <algorithm>
25
#include <cctype>
26
27
28
namespace
UTIL
29
{
30
31
wxString
GetRefDesPrefix
(
const
wxString& aRefDes )
32
{
33
// find the first non-digit, non-question-mark character from the back
34
auto
res
= std::find_if( aRefDes.rbegin(), aRefDes.rend(),
35
[]( wxUniChar aChr )
36
{
37
return aChr !=
'?'
&& !std::isdigit( aChr );
38
} );
39
40
return
{ aRefDes.begin(),
res
.base() };
41
}
42
43
44
wxString
GetRefDesUnannotated
(
const
wxString& aSource )
45
{
46
return
UTIL::GetRefDesPrefix
( aSource ) + wxT(
"?"
);
47
}
48
49
50
int
GetRefDesNumber
(
const
wxString& aRefDes )
51
{
52
int
retval = -1;
// negative to indicate not found
53
size_t
firstnum = aRefDes.find_first_of( wxS(
"0123456789"
) );
54
55
if
( firstnum != wxString::npos )
56
{
57
wxString candidateValue = aRefDes.Mid( firstnum );
58
long
result
;
59
60
if
( !candidateValue.ToLong( &
result
) )
61
retval = -1;
62
else
63
retval =
static_cast<
int
>
(
result
);
64
}
65
66
return
retval;
67
}
68
69
}
// namespace UTIL
UTIL
A model subscriber implementation using links to represent connections.
Definition
refdes_utils.cpp:29
UTIL::GetRefDesPrefix
wxString GetRefDesPrefix(const wxString &aRefDes)
Get the (non-numeric) prefix from a refdes - e.g.
Definition
refdes_utils.cpp:31
UTIL::GetRefDesUnannotated
wxString GetRefDesUnannotated(const wxString &aSource)
Return an unannotated refdes from either a prefix or an existing refdes.
Definition
refdes_utils.cpp:44
UTIL::GetRefDesNumber
int GetRefDesNumber(const wxString &aRefDes)
Get the numeric suffix from a refdes - e.g.
Definition
refdes_utils.cpp:50
refdes_utils.h
Collection of utility functions for component reference designators (refdes)
string_utils.h
res
VECTOR3I res
Definition
test_matrix3x3.cpp:50
result
wxString result
Test unit parsing edge cases and error handling.
Definition
test_text_eval_numeric_compat.cpp:598
src
common
refdes_utils.cpp
Generated on Fri Jun 26 2026 00:05:33 for KiCad PCB EDA Suite by
1.13.2