| OLD | NEW |
| 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 #include "bin/file.h" | 5 #include "bin/file.h" |
| 6 | 6 |
| 7 #include "bin/builtin.h" | 7 #include "bin/builtin.h" |
| 8 #include "bin/dartutils.h" | 8 #include "bin/dartutils.h" |
| 9 #include "bin/io_buffer.h" | 9 #include "bin/io_buffer.h" |
| 10 #include "bin/thread.h" | 10 #include "bin/thread.h" |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 Dart_SetReturnValue(args, Dart_NewBoolean(result)); | 517 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 518 } else { | 518 } else { |
| 519 Dart_Handle err = DartUtils::NewDartOSError(); | 519 Dart_Handle err = DartUtils::NewDartOSError(); |
| 520 if (Dart_IsError(err)) Dart_PropagateError(err); | 520 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 521 Dart_SetReturnValue(args, err); | 521 Dart_SetReturnValue(args, err); |
| 522 } | 522 } |
| 523 Dart_ExitScope(); | 523 Dart_ExitScope(); |
| 524 } | 524 } |
| 525 | 525 |
| 526 | 526 |
| 527 void FUNCTION_NAME(File_RenameLink)(Dart_NativeArguments args) { |
| 528 Dart_EnterScope(); |
| 529 const char* old_path = |
| 530 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 531 const char* new_path = |
| 532 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 1)); |
| 533 bool result = File::RenameLink(old_path, new_path); |
| 534 if (result) { |
| 535 Dart_SetReturnValue(args, Dart_NewBoolean(result)); |
| 536 } else { |
| 537 Dart_Handle err = DartUtils::NewDartOSError(); |
| 538 if (Dart_IsError(err)) Dart_PropagateError(err); |
| 539 Dart_SetReturnValue(args, err); |
| 540 } |
| 541 Dart_ExitScope(); |
| 542 } |
| 543 |
| 544 |
| 527 void FUNCTION_NAME(File_FullPath)(Dart_NativeArguments args) { | 545 void FUNCTION_NAME(File_FullPath)(Dart_NativeArguments args) { |
| 528 Dart_EnterScope(); | 546 Dart_EnterScope(); |
| 529 const char* str = | 547 const char* str = |
| 530 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); | 548 DartUtils::GetStringValue(Dart_GetNativeArgument(args, 0)); |
| 531 char* path = File::GetCanonicalPath(str); | 549 char* path = File::GetCanonicalPath(str); |
| 532 if (path != NULL) { | 550 if (path != NULL) { |
| 533 Dart_SetReturnValue(args, DartUtils::NewString(path)); | 551 Dart_SetReturnValue(args, DartUtils::NewString(path)); |
| 534 free(path); | 552 free(path); |
| 535 } else { | 553 } else { |
| 536 Dart_Handle err = DartUtils::NewDartOSError(); | 554 Dart_Handle err = DartUtils::NewDartOSError(); |
| (...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1100 if (result) { | 1118 if (result) { |
| 1101 return CObject::True(); | 1119 return CObject::True(); |
| 1102 } else { | 1120 } else { |
| 1103 return CObject::NewOSError(); | 1121 return CObject::NewOSError(); |
| 1104 } | 1122 } |
| 1105 } | 1123 } |
| 1106 return CObject::IllegalArgumentError(); | 1124 return CObject::IllegalArgumentError(); |
| 1107 } | 1125 } |
| 1108 | 1126 |
| 1109 | 1127 |
| 1128 static CObject* FileRenameLinkRequest(const CObjectArray& request) { |
| 1129 if (request.Length() == 3 && |
| 1130 request[1]->IsString() && |
| 1131 request[2]->IsString()) { |
| 1132 CObjectString old_path(request[1]); |
| 1133 CObjectString new_path(request[2]); |
| 1134 bool completed = File::RenameLink(old_path.CString(), new_path.CString()); |
| 1135 if (completed) return CObject::True(); |
| 1136 return CObject::NewOSError(); |
| 1137 } |
| 1138 return CObject::IllegalArgumentError(); |
| 1139 } |
| 1140 |
| 1141 |
| 1110 static CObject* FileLinkTargetRequest(const CObjectArray& request) { | 1142 static CObject* FileLinkTargetRequest(const CObjectArray& request) { |
| 1111 if (request.Length() == 2 && request[1]->IsString()) { | 1143 if (request.Length() == 2 && request[1]->IsString()) { |
| 1112 CObjectString link_path(request[1]); | 1144 CObjectString link_path(request[1]); |
| 1113 char* target = File::LinkTarget(link_path.CString()); | 1145 char* target = File::LinkTarget(link_path.CString()); |
| 1114 if (target != NULL) { | 1146 if (target != NULL) { |
| 1115 CObject* result = new CObjectString(CObject::NewString(target)); | 1147 CObject* result = new CObjectString(CObject::NewString(target)); |
| 1116 free(target); | 1148 free(target); |
| 1117 return result; | 1149 return result; |
| 1118 } else { | 1150 } else { |
| 1119 return CObject::NewOSError(); | 1151 return CObject::NewOSError(); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1241 break; | 1273 break; |
| 1242 case File::kReadIntoRequest: | 1274 case File::kReadIntoRequest: |
| 1243 response = FileReadIntoRequest(request); | 1275 response = FileReadIntoRequest(request); |
| 1244 break; | 1276 break; |
| 1245 case File::kWriteFromRequest: | 1277 case File::kWriteFromRequest: |
| 1246 response = FileWriteFromRequest(request); | 1278 response = FileWriteFromRequest(request); |
| 1247 break; | 1279 break; |
| 1248 case File::kDeleteLinkRequest: | 1280 case File::kDeleteLinkRequest: |
| 1249 response = FileDeleteLinkRequest(request); | 1281 response = FileDeleteLinkRequest(request); |
| 1250 break; | 1282 break; |
| 1283 case File::kRenameLinkRequest: |
| 1284 response = FileRenameLinkRequest(request); |
| 1285 break; |
| 1251 case File::kCreateLinkRequest: | 1286 case File::kCreateLinkRequest: |
| 1252 response = FileCreateLinkRequest(request); | 1287 response = FileCreateLinkRequest(request); |
| 1253 break; | 1288 break; |
| 1254 case File::kLinkTargetRequest: | 1289 case File::kLinkTargetRequest: |
| 1255 response = FileLinkTargetRequest(request); | 1290 response = FileLinkTargetRequest(request); |
| 1256 break; | 1291 break; |
| 1257 case File::kTypeRequest: | 1292 case File::kTypeRequest: |
| 1258 response = FileTypeRequest(request); | 1293 response = FileTypeRequest(request); |
| 1259 break; | 1294 break; |
| 1260 case File::kIdenticalRequest: | 1295 case File::kIdenticalRequest: |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1285 if (service_port != ILLEGAL_PORT) { | 1320 if (service_port != ILLEGAL_PORT) { |
| 1286 // Return a send port for the service port. | 1321 // Return a send port for the service port. |
| 1287 Dart_Handle send_port = Dart_NewSendPort(service_port); | 1322 Dart_Handle send_port = Dart_NewSendPort(service_port); |
| 1288 Dart_SetReturnValue(args, send_port); | 1323 Dart_SetReturnValue(args, send_port); |
| 1289 } | 1324 } |
| 1290 Dart_ExitScope(); | 1325 Dart_ExitScope(); |
| 1291 } | 1326 } |
| 1292 | 1327 |
| 1293 } // namespace bin | 1328 } // namespace bin |
| 1294 } // namespace dart | 1329 } // namespace dart |
| OLD | NEW |