MCPcopy Create free account
hub / github.com/KLayout/klayout / rename

Method rename

src/laybasic/laybasic/layLayoutHandle.cc:138–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136}
137
138void
139LayoutHandle::rename (const std::string &name, bool force)
140{
141 std::string n (name);
142
143 if (n != m_name) {
144
145 if (force || find (n) == 0) {
146 ms_dict.erase (m_name);
147 if (tl::verbosity () >= 40) {
148 tl::info << "Renamed layout from " << m_name << " to " << n;
149 }
150 m_name = n;
151 ms_dict.insert (std::make_pair (n, this));
152 return;
153 }
154
155 // rename using suffix "[u]" where u is a unique index
156 int nn = 0;
157 int ns = 0x40000000;
158 do {
159 n = name + tl::sprintf ("[%d]", nn + ns);
160 if (find (n) != 0) {
161 nn += ns;
162 }
163 ns /= 2;
164 } while (ns > 0);
165
166 n = name + tl::sprintf ("[%d]", nn + 1);
167
168 if (tl::verbosity () >= 40) {
169 tl::info << "Renamed layout from " << m_name << " to " << n;
170 }
171
172 if (find (m_name) == this) {
173 ms_dict.erase (m_name);
174 }
175
176 m_name = n;
177 ms_dict.insert (std::make_pair (n, this));
178 return;
179
180 }
181}
182
183db::Layout &
184LayoutHandle::layout () const

Callers 9

setDataMethod · 0.45
Macro *)))Method · 0.45
cm_new_layoutMethod · 0.45
restoreMethod · 0.45
sel_export_layoutMethod · 0.45
export_layoutMethod · 0.45
set_nameFunction · 0.45
reload_layoutMethod · 0.45
rename_cellviewMethod · 0.45

Calls 5

verbosityFunction · 0.85
findFunction · 0.70
sprintfFunction · 0.50
eraseMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected