Merge "TBR: mojo.syncbase: Replace "v23" (the tool name) with "jiri"."
diff --git a/Makefile b/Makefile
index dcd9115..f61d30c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,5 @@
 PWD := $(shell pwd)
 DART_FILES := $(shell find dart/bin dart/lib dart/test sky_demo/lib -name "*.dart" -not -path "dart/lib/gen/*")
-GO_FILES := $(shell find gen/go/src -name "*.go")
 V23_GO_FILES := $(shell find $(JIRI_ROOT) -name "*.go")
 
 include ../shared/mojo.mk
@@ -93,7 +92,7 @@
 $(ETHER_BUILD_DIR)/syncbase_server.mojo: CGO_CXXFLAGS := -I$(THIRD_PARTY_LIBS)/leveldb/include
 $(ETHER_BUILD_DIR)/syncbase_server.mojo: CGO_LDFLAGS := -L$(THIRD_PARTY_LIBS)/leveldb/lib -lleveldb -L$(THIRD_PARTY_LIBS)/snappy/lib -lsnappy
 $(ETHER_BUILD_DIR)/syncbase_server.mojo: LDFLAGS := -X v.io/x/ref/runtime/internal.commandLineFlags '$(V23_MOJO_FLAGS)'
-$(ETHER_BUILD_DIR)/syncbase_server.mojo: $(GO_FILES) $(V23_GO_FILES) $(MOJO_SHARED_LIB) gen/go/src/mojom/syncbase/syncbase.mojom.go | syncbase-env-check
+$(ETHER_BUILD_DIR)/syncbase_server.mojo: $(V23_GO_FILES) $(MOJO_SHARED_LIB) gen/go/src/mojom/syncbase/syncbase.mojom.go | syncbase-env-check
 	$(call MOGO_BUILD,v.io/x/ref/services/syncbase/syncbased,$@)
 
 # Formats dart files to follow dart style conventions.
diff --git a/dart/lib/src/naming/util.dart b/dart/lib/src/naming/util.dart
index 3b6d0e7..9f1d7b6 100644
--- a/dart/lib/src/naming/util.dart
+++ b/dart/lib/src/naming/util.dart
@@ -8,7 +8,7 @@
 // implement a Dart Vanadium library.
 
 // TODO(sadovsky): Make this function support more than two input names, and
-// clean the resulting string the same way we do in Go.
+// clean the resulting string the same way we do in Go and other languages.
 String join(String a, String b) {
   return a + '/' + b;
 }
diff --git a/dart/lib/src/util.dart b/dart/lib/src/util.dart
index 615b9a9..a53c3b6 100644
--- a/dart/lib/src/util.dart
+++ b/dart/lib/src/util.dart
@@ -9,11 +9,11 @@
 // the byte's two-digit hex code. Clients using the client library need not
 // escape names themselves; the client library does so on their behalf.
 String escape(String s) {
-  return naming.escape(s, '/');
+  return naming.encodeAsNameElement(s);
 }
 
 // unescape applies the inverse of escape. Throws exception if the given string
 // is not a valid escaped string.
 String unescape(String s) {
-  return naming.unescape(s);
+  return naming.decodeFromNameElement(s);
 }
diff --git a/dart/test/integration/syncbase_row_test.dart b/dart/test/integration/syncbase_row_test.dart
index 598397b..f1a1d81 100644
--- a/dart/test/integration/syncbase_row_test.dart
+++ b/dart/test/integration/syncbase_row_test.dart
@@ -26,14 +26,14 @@
   });
 
   test('putting, getting and deleting row', () async {
-    var app = c.app(utils.uniqueName('app'));
+    var app = c.app(utils.uniqueName('app/a$%b'));  // symbols are okay
     await app.create(utils.emptyPerms());
     var db = app.noSqlDatabase(utils.uniqueName('db'));
     await db.create(utils.emptyPerms());
     var table = db.table(utils.uniqueName('table'));
     await table.create(utils.emptyPerms());
 
-    var row = table.row(utils.uniqueName('row'));
+    var row = table.row(utils.uniqueName('row/a$%b'));  // symbols are okay
 
     expect(await row.exists(), equals(false));