-rw-r--r-- | noncore/games/minesweep/minefield.cpp | 4 | ||||
-rw-r--r-- | noncore/net/opieirc/ircsession.cpp | 8 | ||||
-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/csv.c | 3 |
3 files changed, 10 insertions, 5 deletions
diff --git a/noncore/games/minesweep/minefield.cpp b/noncore/games/minesweep/minefield.cpp index 72c05b0..1987ea5 100644 --- a/noncore/games/minesweep/minefield.cpp +++ b/noncore/games/minesweep/minefield.cpp @@ -683,65 +683,67 @@ void MineField::writeConfig(Config& cfg) const } } cfg.writeEntry("Grid",grid); } void MineField::readConfig(Config& cfg) { cfg.setGroup("Field"); lev = cfg.readNumEntry("Level",1); setup(lev); flagAction = NoAction; ignoreClick = FALSE; currRow = currCol = 0; QString grid = cfg.readEntry("Grid"); int x; if ( !grid.isEmpty() ) { int i=0; minecount=0; mineguess=0; for ( x = 0; x < numCols; x++ ) { for ( int y = 0; y < numRows; y++ ) { char code='A'+(x*17+y*101)%21; // Reduce the urge to cheat int st = (char)(QChar)grid[i++]-code; Mine* m = mine( y, x ); + if (!m) + continue; if ( st >= 5 ) { st-=5; m->setMined(TRUE); minecount++; mineguess++; } m->setState((Mine::MineState)st); switch ( m->state() ) { case Mine::Flagged: if (m->isMined()) minecount--; mineguess--; break; case Mine::Empty: --nonminecount; break; default: break; } } } for ( x = 0; x < numCols; x++ ) { for ( int y = 0; y < numRows; y++ ) { Mine* m = mine( y, x ); - if ( m->state() == Mine::Empty ) + if ( m && m->state() == Mine::Empty ) m->setHint(getHint(y,x)); } } } setState( Playing ); emit mineCount( mineguess ); } QSize MineField::sizeHint() const { if ( qApp->desktop()->width() >= 240 ) return QSize(200,200); else return QSize(160, 160); } diff --git a/noncore/net/opieirc/ircsession.cpp b/noncore/net/opieirc/ircsession.cpp index c8d7869..d87ff80 100644 --- a/noncore/net/opieirc/ircsession.cpp +++ b/noncore/net/opieirc/ircsession.cpp @@ -119,51 +119,53 @@ void IRCSession::updateNickname(const QString &oldNickname, const QString &newNi QList<IRCChannel> channels; IRCOutput output; if (oldNickname == m_server->nick()) { m_server->setNick(newNickname); output = IRCOutput(OUTPUT_NICKCHANGE, tr("You are now known as %1").arg(newNickname)); channels = m_channels; } else { IRCPerson *person = getPerson(oldNickname); if(!person) { emit outputReady(IRCOutput(OUTPUT_ERROR, tr("Nickname change of an unknown person"))); return; } getChannelsByPerson(person, channels); output = IRCOutput(OUTPUT_NICKCHANGE, tr("%1 is now known as %2").arg(oldNickname).arg(newNickname)); } QListIterator<IRCChannel> it(channels); for (;it.current(); ++it) { IRCChannelPerson *chanperson = it.current()->getPerson(oldNickname); - it.current()->removePerson(chanperson); - chanperson->setNick(newNickname); - it.current()->addPerson(chanperson); + if (chanperson) { + it.current()->removePerson(chanperson); + chanperson->setNick(newNickname); + it.current()->addPerson(chanperson); + } } emit updateChannels(); output.addParam(new QString(newNickname)); emit outputReady(output); } IRCChannel *IRCSession::getChannel(QString channelname) { QListIterator<IRCChannel> it(m_channels); for (; it.current(); ++it) { if (it.current()->channelname() == channelname) { return it.current(); } } return 0; } IRCPerson *IRCSession::getPerson(QString nickname) { QListIterator<IRCPerson> it(m_people); for (; it.current(); ++it) { if (it.current()->nick() == nickname) { return it.current(); } } diff --git a/noncore/todayplugins/stockticker/libstocks/csv.c b/noncore/todayplugins/stockticker/libstocks/csv.c index 6170bed..86d8607 100644 --- a/noncore/todayplugins/stockticker/libstocks/csv.c +++ b/noncore/todayplugins/stockticker/libstocks/csv.c @@ -293,49 +293,50 @@ stock *parse_csv_history_file(char *csv_file) char *line; char *end_line; char *ptr; int day; char smonth[10]; int month; int year; char *date; int i; int test; stock *StockPtr=NULL; stock *LastStockPtr=NULL; /* Used to return the pointer to the list */ stock *FirstStockPtr=NULL; line = csv_file; end_line = csv_file; /* do not use the first line */ - end_line = strstr(line, "\n"); + if (!(end_line = strstr(line, "\n"))) + return 0; *end_line = 0; end_line++; line = end_line; while ((end_line = strstr(line, "\n"))) { *end_line = 0; StockPtr = malloc_stock(); /* Date */ ptr = strtok(line, ","); if (!ptr) return 0; sscanf(ptr,"%d-%3s-%d",&day,smonth,&year); i=0; #ifdef __UNIX__ while((test=strcasecmp(months[i], smonth))) i++; #elif __WINDOWS__ while(test=_mbsnbicmp(months[i], smonth, strlen(months[i]))) i++; #endif |