// insert a new line after the given one or in the very beginning if !pLine LineList *wxFileConfig::LineListInsert(const wxString& str, LineList *pLine) { if ( pLine == m_linesTail ) return LineListAppend(str); LineList *pNewLine = new LineList(str); if ( pLine == NULL ) { // prepend to the list pNewLine->SetNext(m_linesHead); m_linesHead->SetPrev(pNewLine); m_linesHead = pNewLine; } else { // insert before pLine LineList *pNext = pLine->Next(); pNewLine->SetNext(pNext); pNewLine->SetPrev(pLine); pNext->SetPrev(pNewLine); pLine->SetNext(pNewLine); } return pNewLine; }
// append a new line to the end of the list LineList *wxFileConfig::LineListAppend(const wxString& str) { LineList *pLine = new LineList(str); if ( m_linesTail == NULL ) { // list is empty m_linesHead = pLine; } else { // adjust pointers m_linesTail->SetNext(pLine); pLine->SetPrev(m_linesTail); } m_linesTail = pLine; return m_linesTail; }