(svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
authorskidd13
Sun, 02 Nov 2008 11:20:15 +0000
changeset 10310 ca2eb5811a07
parent 10309 a3519caf1001
child 10311 44b12fe10656
(svn r14555) -Codechange: replace ttd_strlcat and ttd_strlcpy with strecat and strecpy where direct conversion is possible
src/console_cmds.cpp
src/debug.cpp
src/fileio.cpp
src/fios.cpp
src/gfx.cpp
src/misc_gui.cpp
src/music/extmidi.cpp
src/network/network.cpp
src/network/network_chat_gui.cpp
src/network/network_client.cpp
src/network/network_data.cpp
src/network/network_gui.cpp
src/network/network_server.cpp
src/network/network_udp.cpp
src/newgrf_config.cpp
src/openttd.cpp
src/os2.cpp
src/screenshot.cpp
src/settings_gui.cpp
src/strgen/strgen.cpp
src/strings.cpp
src/unix.cpp
src/win32.cpp
--- a/src/console_cmds.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/console_cmds.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -250,8 +250,8 @@
 				_switch_mode = SM_LOAD;
 				SetFiosType(item->type);
 
-				ttd_strlcpy(_file_to_saveload.name, FiosBrowseTo(item), sizeof(_file_to_saveload.name));
-				ttd_strlcpy(_file_to_saveload.title, item->title, sizeof(_file_to_saveload.title));
+				strecpy(_file_to_saveload.name, FiosBrowseTo(item), lastof(_file_to_saveload.name));
+				strecpy(_file_to_saveload.title, item->title, lastof(_file_to_saveload.title));
 			} break;
 			default: IConsolePrintF(CC_ERROR, "%s: Not a savegame.", file);
 		}
@@ -1230,7 +1230,7 @@
 
 	if (strcmp(argv[0], "*") == 0) argv[0][0] = '\0';
 
-	ttd_strlcpy(_network_company_info[_local_company].password, argv[0], sizeof(_network_company_info[_local_company].password));
+	strecpy(_network_company_info[_local_company].password, argv[0], lastof(_network_company_info[_local_company].password));
 
 	if (!_network_server) {
 		NetworkClientSetPassword();
--- a/src/debug.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/debug.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -163,7 +163,7 @@
 
 	for (i++; i != endof(debug_level); i++) {
 		snprintf(dbgval, sizeof(dbgval), ", %s=%d", i->name, *i->level);
-		ttd_strlcat(dbgstr, dbgval, sizeof(dbgstr));
+		strecat(dbgstr, dbgval, lastof(dbgstr));
 	}
 
 	return dbgstr;
--- a/src/fileio.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/fileio.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -310,7 +310,7 @@
 	char buf[MAX_PATH];
 
 	if (subdir == NO_DIRECTORY) {
-		ttd_strlcpy(buf, filename, lengthof(buf));
+		strecpy(buf, filename, lastof(buf));
 	} else {
 		snprintf(buf, lengthof(buf), "%s%s%s", _searchpaths[sp], _subdirs[subdir], filename);
 	}
--- a/src/fios.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/fios.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -216,14 +216,14 @@
 		fios = _fios_items.Append();
 		fios->type = FIOS_TYPE_PARENT;
 		fios->mtime = 0;
-		ttd_strlcpy(fios->name, "..", lengthof(fios->name));
-		ttd_strlcpy(fios->title, ".. (Parent directory)", lengthof(fios->title));
+		strecpy(fios->name, "..", lastof(fios->name));
+		strecpy(fios->title, ".. (Parent directory)", lastof(fios->title));
 	}
 
 	/* Show subdirectories */
 	if (mode != SLD_NEW_GAME && (dir = ttd_opendir(_fios_path)) != NULL) {
 		while ((dirent = readdir(dir)) != NULL) {
-			ttd_strlcpy(d_name, FS2OTTD(dirent->d_name), sizeof(d_name));
+			strecpy(d_name, FS2OTTD(dirent->d_name), lastof(d_name));
 
 			/* found file must be directory, but not '.' or '..' */
 			if (FiosIsValidFile(_fios_path, dirent, &sb) && (sb.st_mode & S_IFDIR) &&
@@ -232,7 +232,7 @@
 				fios = _fios_items.Append();
 				fios->type = FIOS_TYPE_DIR;
 				fios->mtime = 0;
-				ttd_strlcpy(fios->name, d_name, lengthof(fios->name));
+				strecpy(fios->name, d_name, lastof(fios->name));
 				snprintf(fios->title, lengthof(fios->title), "%s" PATHSEP " (Directory)", d_name);
 				str_validate(fios->title);
 			}
@@ -257,7 +257,7 @@
 		while ((dirent = readdir(dir)) != NULL) {
 			char fios_title[64];
 			char *t;
-			ttd_strlcpy(d_name, FS2OTTD(dirent->d_name), sizeof(d_name));
+			strecpy(d_name, FS2OTTD(dirent->d_name), lastof(d_name));
 
 			if (!FiosIsValidFile(_fios_path, dirent, &sb) || !(sb.st_mode & S_IFREG) || FiosIsHiddenFile(dirent)) continue;
 
@@ -270,12 +270,12 @@
 				fios = _fios_items.Append();
 				fios->mtime = sb.st_mtime;
 				fios->type = type;
-				ttd_strlcpy(fios->name, d_name, lengthof(fios->name));
+				strecpy(fios->name, d_name, lastof(fios->name));
 
 				/* Some callbacks want to lookup the title of the file. Allow that.
 				 * If we just copy the title from the filename, strip the extension */
 				t = (fios_title[0] == '\0') ? *t = '\0', d_name : fios_title;
-				ttd_strlcpy(fios->title, t, lengthof(fios->title));
+				strecpy(fios->title, t, lastof(fios->title));
 				str_validate(fios->title);
 			}
 		}
--- a/src/gfx.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/gfx.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -986,7 +986,7 @@
 int DoDrawStringTruncated(const char *str, int x, int y, uint16 color, uint maxw)
 {
 	char buffer[DRAW_STRING_BUFFER];
-	ttd_strlcpy(buffer, str, sizeof(buffer));
+	strecpy(buffer, str, lastof(buffer));
 	TruncateString(buffer, maxw);
 	return DoDrawString(buffer, x, y, color);
 }
--- a/src/misc_gui.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/misc_gui.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -1488,7 +1488,7 @@
 				break;
 
 			default:
-				ttd_strlcpy(o_dir.name, _personal_dir, lengthof(o_dir.name));
+				strecpy(o_dir.name, _personal_dir, lastof(o_dir.name));
 		}
 
 		this->vscroll.cap = 10;
@@ -1574,14 +1574,14 @@
 						_switch_mode = (_game_mode == GM_EDITOR) ? SM_LOAD_SCENARIO : SM_LOAD;
 
 						SetFiosType(file->type);
-						ttd_strlcpy(_file_to_saveload.name, name, sizeof(_file_to_saveload.name));
-						ttd_strlcpy(_file_to_saveload.title, file->title, sizeof(_file_to_saveload.title));
+						strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
+						strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title));
 
 						delete this;
 					} else if (_saveload_mode == SLD_LOAD_HEIGHTMAP) {
 						SetFiosType(file->type);
-						ttd_strlcpy(_file_to_saveload.name, name, sizeof(_file_to_saveload.name));
-						ttd_strlcpy(_file_to_saveload.title, file->title, sizeof(_file_to_saveload.title));
+						strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
+						strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title));
 
 						delete this;
 						ShowHeightmapLoad();
--- a/src/music/extmidi.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/music/extmidi.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -34,7 +34,7 @@
 
 void MusicDriver_ExtMidi::PlaySong(const char* filename)
 {
-	ttd_strlcpy(this->song, filename, lengthof(this->song));
+	strecpy(this->song, filename, lastof(this->song));
 	this->DoStop();
 }
 
--- a/src/network/network.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/network/network.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -212,19 +212,19 @@
 			SetDParamStr(0, name);
 			SetDParamStr(1, buf);
 			GetString(temp, self_send ? STR_NETWORK_CHAT_TO_COMPANY : STR_NETWORK_CHAT_COMPANY, lastof(temp));
-			ttd_strlcpy(message, temp, sizeof(message));
+			strecpy(message, temp, lastof(message));
 			break;
 		case NETWORK_ACTION_CHAT_CLIENT:
 			SetDParamStr(0, name);
 			SetDParamStr(1, buf);
 			GetString(temp, self_send ? STR_NETWORK_CHAT_TO_CLIENT : STR_NETWORK_CHAT_CLIENT, lastof(temp));
-			ttd_strlcpy(message, temp, sizeof(message));
+			strecpy(message, temp, lastof(message));
 			break;
 		default:
 			SetDParamStr(0, name);
 			SetDParamStr(1, buf);
 			GetString(temp, STR_NETWORK_CHAT_ALL, lastof(temp));
-			ttd_strlcpy(message, temp, sizeof(message));
+			strecpy(message, temp, lastof(message));
 			break;
 	}
 
@@ -734,9 +734,9 @@
 		char host[NETWORK_HOSTNAME_LENGTH];
 		uint16 rport;
 
-		ttd_strlcpy(host, b, lengthof(host));
+		strecpy(host, b, lastof(host));
 
-		ttd_strlcpy(_settings_client.network.connect_to_ip, b, lengthof(_settings_client.network.connect_to_ip));
+		strecpy(_settings_client.network.connect_to_ip, b, lastof(_settings_client.network.connect_to_ip));
 		rport = NETWORK_DEFAULT_PORT;
 
 		ParseConnectionString(&company, &port, host);
@@ -774,7 +774,7 @@
 
 	if (port == 0) return false;
 
-	ttd_strlcpy(_settings_client.network.last_host, host, sizeof(_settings_client.network.last_host));
+	strecpy(_settings_client.network.last_host, host, lastof(_settings_client.network.last_host));
 	_settings_client.network.last_port = port;
 
 	NetworkDisconnect();
@@ -815,8 +815,8 @@
 	ci->client_index = NETWORK_SERVER_INDEX;
 	ci->client_playas = _network_dedicated ? COMPANY_SPECTATOR : _local_company;
 
-	ttd_strlcpy(ci->client_name, _settings_client.network.client_name, sizeof(ci->client_name));
-	ttd_strlcpy(ci->unique_id, _settings_client.network.network_id, sizeof(ci->unique_id));
+	strecpy(ci->client_name, _settings_client.network.client_name, lastof(ci->client_name));
+	strecpy(ci->unique_id, _settings_client.network.network_id, lastof(ci->unique_id));
 }
 
 bool NetworkServerStart()
--- a/src/network/network_chat_gui.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/network/network_chat_gui.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -97,7 +97,7 @@
 
 	for (bufp = buf; lines != 0; lines--) {
 		ChatMessage *cmsg = &_chatmsg_list[msg_count++];
-		ttd_strlcpy(cmsg->message, bufp, sizeof(cmsg->message));
+		strecpy(cmsg->message, bufp, lastof(cmsg->message));
 
 		/* The default colour for a message is company colour. Replace this with
 		 * white for any additional lines */
--- a/src/network/network_client.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/network/network_client.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -84,10 +84,10 @@
 	if (StrEmpty(_network_company_info[_local_company].password)) return;
 
 	_password_game_seed = _settings_game.game_creation.generation_seed;
-	ttd_strlcpy(_password_server_unique_id, _settings_client.network.network_id, sizeof(_password_server_unique_id));
+	strecpy(_password_server_unique_id, _settings_client.network.network_id, lastof(_password_server_unique_id));
 
 	const char *new_pw = GenerateCompanyPasswordHash(_network_company_info[_local_company].password);
-	ttd_strlcpy(_network_company_info[_local_company].password, new_pw, sizeof(_network_company_info[_local_company].password));
+	strecpy(_network_company_info[_local_company].password, new_pw, lastof(_network_company_info[_local_company].password));
 }
 
 
@@ -419,7 +419,7 @@
 		}
 
 		ci->client_playas = playas;
-		ttd_strlcpy(ci->client_name, name, sizeof(ci->client_name));
+		strecpy(ci->client_name, name, lastof(ci->client_name));
 
 		InvalidateWindow(WC_CLIENT_LIST, 0);
 
@@ -432,7 +432,7 @@
 		ci->client_index = index;
 		ci->client_playas = playas;
 
-		ttd_strlcpy(ci->client_name, name, sizeof(ci->client_name));
+		strecpy(ci->client_name, name, lastof(ci->client_name));
 
 		InvalidateWindow(WC_CLIENT_LIST, 0);
 
@@ -951,7 +951,7 @@
 		} else {
 			if (NetworkFindName(_settings_client.network.client_name)) {
 				NetworkTextMessage(NETWORK_ACTION_NAME_CHANGE, CC_DEFAULT, false, ci->client_name, "%s", _settings_client.network.client_name);
-				ttd_strlcpy(ci->client_name, _settings_client.network.client_name, sizeof(ci->client_name));
+				strecpy(ci->client_name, _settings_client.network.client_name, lastof(ci->client_name));
 				NetworkUpdateClientInfo(NETWORK_SERVER_INDEX);
 			}
 		}
--- a/src/network/network_data.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/network/network_data.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -53,7 +53,7 @@
 		c.callback = 0; // _callback_table[0] == NULL
 	}
 
-	ttd_strlcpy(c.text, (_cmd_text != NULL) ? _cmd_text : "", lengthof(c.text));
+	strecpy(c.text, (_cmd_text != NULL) ? _cmd_text : "", lastof(c.text));
 
 	if (_network_server) {
 		/* If we are the server, we queue the command in our 'special' queue.
--- a/src/network/network_gui.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/network/network_gui.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -672,9 +672,9 @@
 
 		/* The name is only allowed when it starts with a letter! */
 		if (!StrEmpty(this->edit_str_buf) && this->edit_str_buf[0] != ' ') {
-			ttd_strlcpy(_settings_client.network.client_name, this->edit_str_buf, lengthof(_settings_client.network.client_name));
+			strecpy(_settings_client.network.client_name, this->edit_str_buf, lastof(_settings_client.network.client_name));
 		} else {
-			ttd_strlcpy(_settings_client.network.client_name, "Player", lengthof(_settings_client.network.client_name));
+			strecpy(_settings_client.network.client_name, "Player", lastof(_settings_client.network.client_name));
 		}
 		return state;
 	}
@@ -1003,8 +1003,8 @@
 					if (name != NULL) {
 						SetFiosType(this->map->type);
 						_file_to_saveload.filetype = FT_SCENARIO;
-						ttd_strlcpy(_file_to_saveload.name, name, sizeof(_file_to_saveload.name));
-						ttd_strlcpy(_file_to_saveload.title, this->map->title, sizeof(_file_to_saveload.title));
+						strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
+						strecpy(_file_to_saveload.title, this->map->title, lastof(_file_to_saveload.title));
 
 						delete this;
 						SwitchMode(SM_START_SCENARIO);
@@ -1049,7 +1049,7 @@
 		if (this->field == NSSW_GAMENAME) {
 			if (this->HandleEditBoxKey(NSSW_GAMENAME, key, keycode, state) == HEBR_CONFIRM) return state;
 
-			ttd_strlcpy(_settings_client.network.server_name, this->text.buf, sizeof(_settings_client.network.server_name));
+			strecpy(_settings_client.network.server_name, this->text.buf, lastof(_settings_client.network.server_name));
 		}
 
 		return state;
@@ -1060,7 +1060,7 @@
 		if (str == NULL) return;
 
 		if (this->widget_id == NSSW_SETPWD) {
-			ttd_strlcpy(_settings_client.network.server_password, str, lengthof(_settings_client.network.server_password));
+			strecpy(_settings_client.network.server_password, str, lastof(_settings_client.network.server_password));
 		} else {
 			int32 value = atoi(str);
 			this->InvalidateWidget(this->widget_id);
--- a/src/network/network_server.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/network/network_server.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -679,7 +679,7 @@
 	}
 
 	// We need a valid name.. make it Player
-	if (StrEmpty(name)) ttd_strlcpy(name, "Player", sizeof(name));
+	if (StrEmpty(name)) strecpy(name, "Player", lastof(name));
 
 	if (!NetworkFindName(name)) { // Change name if duplicate
 		// We could not create a name for this client
@@ -689,8 +689,8 @@
 
 	ci = DEREF_CLIENT_INFO(cs);
 
-	ttd_strlcpy(ci->client_name, name, sizeof(ci->client_name));
-	ttd_strlcpy(ci->unique_id, unique_id, sizeof(ci->unique_id));
+	strecpy(ci->client_name, name, lastof(ci->client_name));
+	strecpy(ci->unique_id, unique_id, lastof(ci->unique_id));
 	ci->client_playas = playas;
 	ci->client_lang = client_lang;
 
@@ -1194,7 +1194,7 @@
 	ci = DEREF_CLIENT_INFO(cs);
 
 	if (IsValidCompanyID(ci->client_playas)) {
-		ttd_strlcpy(_network_company_info[ci->client_playas].password, password, sizeof(_network_company_info[0].password));
+		strecpy(_network_company_info[ci->client_playas].password, password, lastof(_network_company_info[0].password));
 	}
 }
 
@@ -1218,7 +1218,7 @@
 		// Display change
 		if (NetworkFindName(client_name)) {
 			NetworkTextMessage(NETWORK_ACTION_NAME_CHANGE, CC_DEFAULT, false, ci->client_name, "%s", client_name);
-			ttd_strlcpy(ci->client_name, client_name, sizeof(ci->client_name));
+			strecpy(ci->client_name, client_name, lastof(ci->client_name));
 			NetworkUpdateClientInfo(ci->client_index);
 		}
 	}
@@ -1313,11 +1313,11 @@
 
 	FOR_ALL_COMPANIES(c) {
 		// Clean the info but not the password
-		ttd_strlcpy(password, _network_company_info[c->index].password, sizeof(password));
+		strecpy(password, _network_company_info[c->index].password, lastof(password));
 		months_empty = _network_company_info[c->index].months_empty;
 		memset(&_network_company_info[c->index], 0, sizeof(NetworkCompanyInfo));
 		_network_company_info[c->index].months_empty = months_empty;
-		ttd_strlcpy(_network_company_info[c->index].password, password, sizeof(_network_company_info[c->index].password));
+		strecpy(_network_company_info[c->index].password, password, lastof(_network_company_info[c->index].password));
 
 		// Grap the company name
 		SetDParam(0, c->index);
@@ -1372,7 +1372,7 @@
 	ci = NetworkFindClientInfoFromIndex(NETWORK_SERVER_INDEX);
 	// Register local company (if not dedicated)
 	if (ci != NULL && IsValidCompanyID(ci->client_playas))
-		ttd_strlcpy(_network_company_info[ci->client_playas].clients, ci->client_name, sizeof(_network_company_info[0].clients));
+		strecpy(_network_company_info[ci->client_playas].clients, ci->client_name, lastof(_network_company_info[0].clients));
 
 	FOR_ALL_CLIENTS(cs) {
 		char client_name[NETWORK_CLIENT_NAME_LENGTH];
@@ -1382,10 +1382,10 @@
 		ci = DEREF_CLIENT_INFO(cs);
 		if (ci != NULL && IsValidCompanyID(ci->client_playas)) {
 			if (!StrEmpty(_network_company_info[ci->client_playas].clients)) {
-				ttd_strlcat(_network_company_info[ci->client_playas].clients, ", ", lengthof(_network_company_info[0].clients));
+				strecat(_network_company_info[ci->client_playas].clients, ", ", lastof(_network_company_info[0].clients));
 			}
 
-			ttd_strlcat(_network_company_info[ci->client_playas].clients, client_name, lengthof(_network_company_info[0].clients));
+			strecat(_network_company_info[ci->client_playas].clients, client_name, lastof(_network_company_info[0].clients));
 		}
 	}
 }
--- a/src/network/network_udp.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/network/network_udp.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -94,9 +94,9 @@
 	ngi.dedicated      = _network_dedicated;
 	ngi.grfconfig      = _grfconfig;
 
-	ttd_strlcpy(ngi.map_name, _network_game_info.map_name, lengthof(ngi.map_name));
-	ttd_strlcpy(ngi.server_name, _settings_client.network.server_name, lengthof(ngi.server_name));
-	ttd_strlcpy(ngi.server_revision, _openttd_revision, lengthof(ngi.server_revision));
+	strecpy(ngi.map_name, _network_game_info.map_name, lastof(ngi.map_name));
+	strecpy(ngi.server_name, _settings_client.network.server_name, lastof(ngi.server_name));
+	strecpy(ngi.server_revision, _openttd_revision, lastof(ngi.server_revision));
 
 	Packet packet(PACKET_UDP_SERVER_RESPONSE);
 	this->Send_NetworkGameInfo(&packet, &ngi);
@@ -209,8 +209,8 @@
 		char name[NETWORK_GRF_NAME_LENGTH];
 
 		/* The name could be an empty string, if so take the filename */
-		ttd_strlcpy(name, (in_reply[i]->name != NULL && !StrEmpty(in_reply[i]->name)) ?
-				in_reply[i]->name : in_reply[i]->filename, sizeof(name));
+		strecpy(name, (in_reply[i]->name != NULL && !StrEmpty(in_reply[i]->name)) ?
+				in_reply[i]->name : in_reply[i]->filename, lastof(name));
 		this->Send_GRFIdentifier(&packet, in_reply[i]);
 		packet.Send_string(name);
 	}
@@ -465,8 +465,8 @@
 
 	if (StrEmpty(item->info.server_name)) {
 		memset(&item->info, 0, sizeof(item->info));
-		ttd_strlcpy(item->info.server_name, host, lengthof(item->info.server_name));
-		ttd_strlcpy(item->info.hostname, host, lengthof(item->info.hostname));
+		strecpy(item->info.server_name, host, lastof(item->info.server_name));
+		strecpy(item->info.hostname, host, lastof(item->info.hostname));
 		item->online = false;
 	}
 	item->manually = manually;
--- a/src/newgrf_config.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/newgrf_config.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -446,7 +446,7 @@
 	grf = CallocT<UnknownGRF>(1);
 	grf->grfid = grfid;
 	grf->next  = unknown_grfs;
-	ttd_strlcpy(grf->name, UNKNOWN_GRF_NAME_PLACEHOLDER, sizeof(grf->name));
+	strecpy(grf->name, UNKNOWN_GRF_NAME_PLACEHOLDER, lastof(grf->name));
 	memcpy(grf->md5sum, md5sum, sizeof(grf->md5sum));
 
 	unknown_grfs = grf;
--- a/src/openttd.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/openttd.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -424,11 +424,11 @@
 
 	while ((i = MyGetOpt(&mgo)) != -1) {
 		switch (i) {
-		case 'I': ttd_strlcpy(graphics_set, mgo.opt, sizeof(graphics_set)); break;
-		case 'm': ttd_strlcpy(musicdriver, mgo.opt, sizeof(musicdriver)); break;
-		case 's': ttd_strlcpy(sounddriver, mgo.opt, sizeof(sounddriver)); break;
-		case 'v': ttd_strlcpy(videodriver, mgo.opt, sizeof(videodriver)); break;
-		case 'b': ttd_strlcpy(blitter, mgo.opt, sizeof(blitter)); break;
+		case 'I': strecpy(graphics_set, mgo.opt, lastof(graphics_set)); break;
+		case 'm': strecpy(musicdriver, mgo.opt, lastof(musicdriver)); break;
+		case 's': strecpy(sounddriver, mgo.opt, lastof(sounddriver)); break;
+		case 'v': strecpy(videodriver, mgo.opt, lastof(videodriver)); break;
+		case 'b': strecpy(blitter, mgo.opt, lastof(blitter)); break;
 #if defined(ENABLE_NETWORK)
 		case 'D':
 			strcpy(musicdriver, "null");
@@ -467,7 +467,7 @@
 		case 'i': _use_palette = (mgo.opt == NULL || atoi(mgo.opt) == 0) ? PAL_DOS : PAL_WINDOWS; break;
 		case 'g':
 			if (mgo.opt != NULL) {
-				ttd_strlcpy(_file_to_saveload.name, mgo.opt, sizeof(_file_to_saveload.name));
+				strecpy(_file_to_saveload.name, mgo.opt, lastof(_file_to_saveload.name));
 				_switch_mode = SM_LOAD;
 				_file_to_saveload.mode = SL_LOAD;
 
@@ -522,11 +522,11 @@
 
 
 	/* override config? */
-	if (!StrEmpty(graphics_set)) ttd_strlcpy(_ini_graphics_set, graphics_set, sizeof(_ini_graphics_set));
-	if (!StrEmpty(musicdriver)) ttd_strlcpy(_ini_musicdriver, musicdriver, sizeof(_ini_musicdriver));
-	if (!StrEmpty(sounddriver)) ttd_strlcpy(_ini_sounddriver, sounddriver, sizeof(_ini_sounddriver));
-	if (!StrEmpty(videodriver)) ttd_strlcpy(_ini_videodriver, videodriver, sizeof(_ini_videodriver));
-	if (!StrEmpty(blitter))     ttd_strlcpy(_ini_blitter, blitter, sizeof(_ini_blitter));
+	if (!StrEmpty(graphics_set)) strecpy(_ini_graphics_set, graphics_set, lastof(_ini_graphics_set));
+	if (!StrEmpty(musicdriver)) strecpy(_ini_musicdriver, musicdriver, lastof(_ini_musicdriver));
+	if (!StrEmpty(sounddriver)) strecpy(_ini_sounddriver, sounddriver, lastof(_ini_sounddriver));
+	if (!StrEmpty(videodriver)) strecpy(_ini_videodriver, videodriver, lastof(_ini_videodriver));
+	if (!StrEmpty(blitter))     strecpy(_ini_blitter, blitter, lastof(_ini_blitter));
 	if (resolution.width != 0) { _cur_resolution = resolution; }
 	if (startyear != INVALID_YEAR) _settings_newgame.game_creation.starting_year = startyear;
 	if (generation_seed != GENERATE_NEW_SEED) _settings_newgame.game_creation.generation_seed = generation_seed;
@@ -1109,7 +1109,7 @@
 		SetDParam(0, _local_company);
 		SetDParam(1, _date);
 		GetString(buf, STR_4004, lastof(buf));
-		ttd_strlcat(buf, ".sav", lengthof(buf));
+		strecat(buf, ".sav", lastof(buf));
 	} else {
 		/* generate a savegame name and number according to _settings_client.gui.max_num_autosaves */
 		snprintf(buf, sizeof(buf), "autosave%d.sav", _autosave_ctr);
--- a/src/os2.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/os2.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -75,7 +75,7 @@
 #else
 			snprintf(fios->name, lengthof(fios->name),  "%c:", disk);
 #endif
-			ttd_strlcpy(fios->title, fios->name, lengthof(fios->title));
+			strecpy(fios->title, fios->name, lastof(fios->title));
 		}
 	}
 
--- a/src/screenshot.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/screenshot.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -548,7 +548,7 @@
 	size_t len;
 
 	if (_game_mode == GM_EDITOR || _game_mode == GM_MENU || _local_company == COMPANY_SPECTATOR) {
-		ttd_strlcpy(_screenshot_name, "screenshot", lengthof(_screenshot_name));
+		strecpy(_screenshot_name, "screenshot", lastof(_screenshot_name));
 	} else {
 		SetDParam(0, _local_company);
 		SetDParam(1, _date);
--- a/src/settings_gui.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/settings_gui.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -1190,15 +1190,15 @@
 
 			case CUSTCURR_SEPARATOR: /* Thousands seperator */
 				_custom_currency.separator = StrEmpty(str) ? ' ' : str[0];
-				ttd_strlcpy(this->separator, str, lengthof(this->separator));
+				strecpy(this->separator, str, lastof(this->separator));
 				break;
 
 			case CUSTCURR_PREFIX:
-				ttd_strlcpy(_custom_currency.prefix, str, lengthof(_custom_currency.prefix));
+				strecpy(_custom_currency.prefix, str, lastof(_custom_currency.prefix));
 				break;
 
 			case CUSTCURR_SUFFIX:
-				ttd_strlcpy(_custom_currency.suffix, str, lengthof(_custom_currency.suffix));
+				strecpy(_custom_currency.suffix, str, lastof(_custom_currency.suffix));
 				break;
 
 			case CUSTCURR_TO_EURO: { /* Year to switch to euro */
--- a/src/strgen/strgen.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/strgen/strgen.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -643,11 +643,11 @@
 	if (!memcmp(str, "id ", 3)) {
 		_next_string_id = strtoul(str + 3, NULL, 0);
 	} else if (!memcmp(str, "name ", 5)) {
-		ttd_strlcpy(_lang_name, str + 5, sizeof(_lang_name));
+		strecpy(_lang_name, str + 5, lastof(_lang_name));
 	} else if (!memcmp(str, "ownname ", 8)) {
-		ttd_strlcpy(_lang_ownname, str + 8, sizeof(_lang_ownname));
+		strecpy(_lang_ownname, str + 8, lastof(_lang_ownname));
 	} else if (!memcmp(str, "isocode ", 8)) {
-		ttd_strlcpy(_lang_isocode, str + 8, sizeof(_lang_isocode));
+		strecpy(_lang_isocode, str + 8, lastof(_lang_isocode));
 	} else if (!memcmp(str, "plural ", 7)) {
 		_lang_pluralform = atoi(str + 7);
 		if (_lang_pluralform >= lengthof(_plural_form_counts))
@@ -668,7 +668,7 @@
 
 			if (s == NULL) break;
 			if (_numgenders >= MAX_NUM_GENDER) error("Too many genders, max %d", MAX_NUM_GENDER);
-			ttd_strlcpy(_genders[_numgenders], s, sizeof(_genders[_numgenders]));
+			strecpy(_genders[_numgenders], s, lastof(_genders[_numgenders]));
 			_numgenders++;
 		}
 	} else if (!memcmp(str, "case ", 5)) {
@@ -679,7 +679,7 @@
 
 			if (s == NULL) break;
 			if (_numcases >= MAX_NUM_CASES) error("Too many cases, max %d", MAX_NUM_CASES);
-			ttd_strlcpy(_cases[_numcases], s, sizeof(_cases[_numcases]));
+			strecpy(_cases[_numcases], s, lastof(_cases[_numcases]));
 			_numcases++;
 		}
 	} else {
--- a/src/strings.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/strings.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -1271,7 +1271,7 @@
 	_langpack_offs = langpack_offs;
 
 	const char *c_file = strrchr(_dynlang.ent[lang_index].file, PATHSEPCHAR) + 1;
-	ttd_strlcpy(_dynlang.curr_file, c_file, lengthof(_dynlang.curr_file));
+	strecpy(_dynlang.curr_file, c_file, lastof(_dynlang.curr_file));
 
 	_dynlang.curr = lang_index;
 	_dynlang.text_dir = (TextDirection)lang_pack->text_dir;
--- a/src/unix.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/unix.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -154,7 +154,7 @@
 	size_t outlen = sizeof(buf) - 1;
 	size_t inlen  = strlen(name);
 
-	ttd_strlcpy(outbuf, name, sizeof(buf));
+	strecpy(outbuf, name, lastof(buf));
 
 	iconv(convd, NULL, NULL, NULL, NULL);
 	if (iconv(convd, &inbuf, &inlen, &outbuf, &outlen) == (size_t)(-1)) {
--- a/src/win32.cpp	Sun Nov 02 11:15:26 2008 +0000
+++ b/src/win32.cpp	Sun Nov 02 11:20:15 2008 +0000
@@ -803,7 +803,7 @@
 	fios->type = FIOS_TYPE_DRIVE;
 	fios->mtime = 0;
 	snprintf(fios->name, lengthof(fios->name), PATHSEP "");
-	ttd_strlcpy(fios->title, fios->name, lengthof(fios->title));
+	strecpy(fios->title, fios->name, lastof(fios->title));
 #else
 	TCHAR drives[256];
 	const TCHAR *s;
@@ -814,7 +814,7 @@
 		fios->type = FIOS_TYPE_DRIVE;
 		fios->mtime = 0;
 		snprintf(fios->name, lengthof(fios->name),  "%c:", s[0] & 0xFF);
-		ttd_strlcpy(fios->title, fios->name, lengthof(fios->title));
+		strecpy(fios->title, fios->name, lastof(fios->title));
 		while (*s++ != '\0') { /* Nothing */ }
 	}
 #endif
@@ -1127,7 +1127,7 @@
 		cbuf = GetClipboardData(CF_TEXT);
 
 		ptr = (const char*)GlobalLock(cbuf);
-		ttd_strlcpy(utf8_buf, FS2OTTD(ptr), lengthof(utf8_buf));
+		strecpy(utf8_buf, FS2OTTD(ptr), lastof(utf8_buf));
 
 		GlobalUnlock(cbuf);
 		CloseClipboard();