MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / clear

Method clear

src/isql/InputDevices.cpp:150–178  ·  view source on GitHub ↗

Clear the chain of indev, closing file handles.

Source from the content-addressed store, hash-verified

148
149// Clear the chain of indev, closing file handles.
150void InputDevices::clear(FILE* fpointer)
151{
152 while (m_head)
153 {
154 FILE* const p = m_head->indev_fpointer;
155 if (fpointer && p == fpointer)
156 break;
157
158 if (p != stdin && p != m_ofp.indev_fpointer)
159 fclose(p);
160 indev* const flist = m_head->indev_next;
161 delete m_head;
162 m_head = flist;
163 --m_count;
164 }
165 if (m_ifp.indev_fpointer && // In case we called clear(NULL) manually before.
166 m_ifp.indev_fpointer != stdin && m_ifp.indev_fpointer != m_ofp.indev_fpointer)
167 {
168 fclose(m_ifp.indev_fpointer);
169 m_ifp.indev_fpointer = 0;
170 }
171
172 fb_assert(m_count == 0 || fpointer != 0);
173 if (!fpointer)
174 {
175 m_head = 0;
176 m_count = 0;
177 }
178}
179
180// Insert an indev in the chain, always in LIFO way.
181bool InputDevices::insert(FILE* fp, const char* name, const char* display)

Callers 1

commandsToFileMethod · 0.45

Calls 1

fcloseFunction · 0.85

Tested by

no test coverage detected