Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(435)

Side by Side Diff: sdk/lib/_internal/pub/lib/src/validator/utf8_readme.dart

Issue 22909059: Some more removals of dart:utf. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Change ArgumentError to FormatException. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library pub.validator.utf8_readme; 5 library pub.validator.utf8_readme;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:utf'; 8 import 'dart:convert';
9 9
10 import '../entrypoint.dart'; 10 import '../entrypoint.dart';
11 import '../io.dart'; 11 import '../io.dart';
12 import '../validator.dart'; 12 import '../validator.dart';
13 13
14 /// Validates that a package's README is valid utf-8. 14 /// Validates that a package's README is valid utf-8.
15 class Utf8ReadmeValidator extends Validator { 15 class Utf8ReadmeValidator extends Validator {
16 Utf8ReadmeValidator(Entrypoint entrypoint) 16 Utf8ReadmeValidator(Entrypoint entrypoint)
17 : super(entrypoint); 17 : super(entrypoint);
18 18
19 Future validate() { 19 Future validate() {
20 return new Future.sync(() { 20 return new Future.sync(() {
21 var readme = entrypoint.root.readmePath; 21 var readme = entrypoint.root.readmePath;
22 if (readme == null) return; 22 if (readme == null) return;
23 var bytes = readBinaryFile(readme); 23 var bytes = readBinaryFile(readme);
24 try { 24 try {
25 // The second and third arguments here are the default values. The 25 // UTF8.decode doesn't allow invalid UTF-8.
26 // fourth tells [decodeUtf8] to throw an ArgumentError if `bytes` isn't 26 UTF8.decode(bytes);
27 // valid utf-8. 27 } on FormatException catch (_) {
28 decodeUtf8(bytes, 0, null, null);
29 } on ArgumentError catch (_) {
30 warnings.add("$readme contains invalid UTF-8.\n" 28 warnings.add("$readme contains invalid UTF-8.\n"
31 "This will cause it to be displayed incorrectly on " 29 "This will cause it to be displayed incorrectly on "
32 "pub.dartlang.org."); 30 "pub.dartlang.org.");
33 } 31 }
34 }); 32 });
35 } 33 }
36 } 34 }
37 35
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698