From: Tara L Andrews <tla@mit.edu>
Date: Tue, 13 Aug 2013 19:02:00 +0000 (+0200)
Subject: Workaround for Graph::Reader::Dot not accepting Unicode barewords. Fixes #19
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=174e78dffe4fad609f755e573f3247a37a7fae40;p=scpubgit%2Fstemmaweb.git

Workaround for Graph::Reader::Dot not accepting Unicode barewords. Fixes #19
---

diff --git a/lib/stemmaweb/Controller/Root.pm b/lib/stemmaweb/Controller/Root.pm
index 30cc644..f2488ad 100644
--- a/lib/stemmaweb/Controller/Root.pm
+++ b/lib/stemmaweb/Controller/Root.pm
@@ -351,6 +351,11 @@ sub stemma :Local :Args(2) {
 	if( $c->req->method eq 'POST' ) {
 		if( $ok eq 'full' ) {
 			my $dot = $c->request->body_params->{'dot'};
+			# Graph::Reader::Dot does not handle bare unicode. We get around this
+			# by wrapping all words in double quotes, but then we have to undo it
+			# for the initial 'digraph stemma' statement. Horrible hack.
+			$dot =~ s/\b(\w+)\b/"$1"/g;
+			$dot =~ s/"(digraph|stemma)"/$1/g;
 			try {
 				if( $stemmaid eq 'n' ) {
 					# We are adding a new stemma.