$OpenBSD: patch-arts_builder_autorouter_cpp,v 1.1 2015/09/12 01:12:22 zhuk Exp $
Using signed char as an index is a bad idea.
--- arts/builder/autorouter.cpp.orig	Tue Jan 14 20:55:23 2014
+++ arts/builder/autorouter.cpp	Tue Jan 14 20:56:48 2014
@@ -438,7 +438,7 @@ void AutoRouter::thread_connect(int x1, int y1, int x2
 		//arts_debug("bestGoalPath.history for this connection is %s", bestGoalPath.history.data());
 		//arts_debug("minCost for that was %d", gms);
 
-		const char *walk = bestGoalPath.history.ascii();
+		const unsigned char *walk = (const unsigned char*)bestGoalPath.history.ascii();
 
 		int x = x1;
 		int y = y1;
@@ -493,7 +493,7 @@ void AutoRouter::queuePath(const PathInfo &path)
 
 void AutoRouter::examinePath(const PathInfo &path)
 {
-	const char *walk = path.history.ascii();
+	const unsigned char *walk = (const unsigned char*)path.history.ascii();
 
 // check if we can go here:
 
