Mercurial > octave-nkf
comparison libinterp/corefcn/urlwrite.cc @ 20612:7374a3a6d594
use new string_value method to handle value extraction errors
* urlwrite.cc: Use new string_value method.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 08 Oct 2015 17:26:40 -0400 |
parents | 56fee8f84fe7 |
children |
comparison
equal
deleted
inserted
replaced
20611:40ed9b46a800 | 20612:7374a3a6d594 |
---|---|
348 { | 348 { |
349 print_usage (); | 349 print_usage (); |
350 return retval; | 350 return retval; |
351 } | 351 } |
352 | 352 |
353 if (! args(0).is_string ()) | 353 std::string url = args(0).string_value ("urlwrite: URL must be a string"); |
354 { | |
355 error ("urlwrite: URL must be a string"); | |
356 return retval; | |
357 } | |
358 | |
359 std::string url = args(0).string_value (); | |
360 | |
361 if (! args(1).is_string ()) | |
362 { | |
363 error ("urlwrite: LOCALFILE must be a string"); | |
364 return retval; | |
365 } | |
366 | 354 |
367 // name to store the file if download is succesful | 355 // name to store the file if download is succesful |
368 std::string filename = args(1).string_value (); | 356 std::string filename = args(1).string_value ("urlwrite: LOCALFILE must be a string"); |
369 | 357 |
370 std::string method; | 358 std::string method; |
371 Array<std::string> param; | 359 Array<std::string> param; |
372 | 360 |
373 if (nargin == 4) | 361 if (nargin == 4) |
374 { | 362 { |
375 if (! args(2).is_string ()) | 363 method = args(2).string_value ("urlwrite: METHOD must be a string"); |
376 { | |
377 error ("urlwrite: METHOD must be a string"); | |
378 return retval; | |
379 } | |
380 | |
381 method = args(2).string_value (); | |
382 | 364 |
383 if (method != "get" && method != "post") | 365 if (method != "get" && method != "post") |
384 { | 366 { |
385 error ("urlwrite: METHOD must be \"get\" or \"post\""); | 367 error ("urlwrite: METHOD must be \"get\" or \"post\""); |
386 return retval; | 368 return retval; |
509 { | 491 { |
510 print_usage (); | 492 print_usage (); |
511 return retval; | 493 return retval; |
512 } | 494 } |
513 | 495 |
514 if (! args(0).is_string ()) | 496 std::string url = args(0).string_value ("urlread: URL must be a string"); |
515 { | |
516 error ("urlread: URL must be a string"); | |
517 return retval; | |
518 } | |
519 | |
520 std::string url = args(0).string_value (); | |
521 | 497 |
522 std::string method; | 498 std::string method; |
523 Array<std::string> param; | 499 Array<std::string> param; |
524 | 500 |
525 if (nargin == 3) | 501 if (nargin == 3) |
526 { | 502 { |
527 if (! args(1).is_string ()) | 503 method = args(1).string_value ("urlread: METHOD must be a string"); |
528 { | |
529 error ("urlread: METHOD must be a string"); | |
530 return retval; | |
531 } | |
532 | |
533 method = args(1).string_value (); | |
534 | 504 |
535 if (method != "get" && method != "post") | 505 if (method != "get" && method != "post") |
536 { | 506 { |
537 error ("urlread: METHOD must be \"get\" or \"post\""); | 507 error ("urlread: METHOD must be \"get\" or \"post\""); |
538 return retval; | 508 return retval; |
597 print_usage (); | 567 print_usage (); |
598 return retval; | 568 return retval; |
599 } | 569 } |
600 else | 570 else |
601 { | 571 { |
602 host = args(0).string_value (); | 572 host = args(0).string_value ("__ftp__: HOST must be a string"); |
603 | 573 |
604 if (nargin > 1) | 574 if (nargin > 1) |
605 user = args(1).string_value (); | 575 user = args(1).string_value ("__ftp__: USER must be a string"); |
606 | 576 |
607 if (nargin > 2) | 577 if (nargin > 2) |
608 passwd = args(2).string_value (); | 578 passwd = args(2).string_value ("__ftp__: PASSWD must be a string"); |
609 | 579 |
610 curl_handle ch | 580 curl_handle ch |
611 = ch_manager::make_curl_handle (host, user, passwd, octave_stdout); | 581 = ch_manager::make_curl_handle (host, user, passwd, octave_stdout); |
612 | 582 |
613 retval = ch.value (); | 583 retval = ch.value (); |
660 if (curl.is_valid ()) | 630 if (curl.is_valid ()) |
661 { | 631 { |
662 std::string path = ""; | 632 std::string path = ""; |
663 | 633 |
664 if (nargin > 1) | 634 if (nargin > 1) |
665 path = args(1).string_value (); | 635 path = args(1).string_value ("__ftp_cwd__: PATH must be a string"); |
666 | 636 |
667 if (! error_state) | 637 if (! error_state) |
668 curl.cwd (path); | 638 curl.cwd (path); |
669 else | 639 else |
670 error ("__ftp_cwd__: expecting path as second argument"); | 640 error ("__ftp_cwd__: expecting path as second argument"); |
870 { | 840 { |
871 url_transfer curl = ch_manager::get_object (args(0)); | 841 url_transfer curl = ch_manager::get_object (args(0)); |
872 | 842 |
873 if (curl.is_valid ()) | 843 if (curl.is_valid ()) |
874 { | 844 { |
875 std::string file = args(1).string_value (); | 845 std::string file = args(1).string_value ("__ftp_delete__: FILE must be a string"); |
876 | 846 |
877 if (! error_state) | 847 if (! error_state) |
878 curl.del (file); | 848 curl.del (file); |
879 else | 849 else |
880 error ("__ftp_delete__: expecting file name as second argument"); | 850 error ("__ftp_delete__: expecting file name as second argument"); |
902 { | 872 { |
903 url_transfer curl = ch_manager::get_object (args(0)); | 873 url_transfer curl = ch_manager::get_object (args(0)); |
904 | 874 |
905 if (curl.is_valid ()) | 875 if (curl.is_valid ()) |
906 { | 876 { |
907 std::string dir = args(1).string_value (); | 877 std::string dir = args(1).string_value ("__ftp_rmdir__: DIR must be a string"); |
908 | 878 |
909 if (! error_state) | 879 if (! error_state) |
910 curl.rmdir (dir); | 880 curl.rmdir (dir); |
911 else | 881 else |
912 error ("__ftp_rmdir__: expecting directory name as second argument"); | 882 error ("__ftp_rmdir__: expecting directory name as second argument"); |
934 { | 904 { |
935 url_transfer curl = ch_manager::get_object (args(0)); | 905 url_transfer curl = ch_manager::get_object (args(0)); |
936 | 906 |
937 if (curl.is_valid ()) | 907 if (curl.is_valid ()) |
938 { | 908 { |
939 std::string dir = args(1).string_value (); | 909 std::string dir = args(1).string_value ("__ftp_mkdir__: DIR must be a string"); |
940 | 910 |
941 if (! error_state) | 911 if (! error_state) |
942 curl.mkdir (dir); | 912 curl.mkdir (dir); |
943 else | 913 else |
944 error ("__ftp_mkdir__: expecting directory name as second argument"); | 914 error ("__ftp_mkdir__: expecting directory name as second argument"); |
966 { | 936 { |
967 url_transfer curl = ch_manager::get_object (args(0)); | 937 url_transfer curl = ch_manager::get_object (args(0)); |
968 | 938 |
969 if (curl.is_valid ()) | 939 if (curl.is_valid ()) |
970 { | 940 { |
971 std::string oldname = args(1).string_value (); | 941 std::string oldname = args(1).string_value ("__ftp_rename__: OLDNAME must be a string"); |
972 std::string newname = args(2).string_value (); | 942 std::string newname = args(2).string_value ("__ftp_rename__: NEWNAME must be a string"); |
973 | 943 |
974 if (! error_state) | 944 if (! error_state) |
975 curl.rename (oldname, newname); | 945 curl.rename (oldname, newname); |
976 else | 946 else |
977 error ("__ftp_rename__: expecting file names for second and third arguments"); | 947 error ("__ftp_rename__: expecting file names for second and third arguments"); |
999 { | 969 { |
1000 url_transfer curl = ch_manager::get_object (args(0)); | 970 url_transfer curl = ch_manager::get_object (args(0)); |
1001 | 971 |
1002 if (curl.is_valid ()) | 972 if (curl.is_valid ()) |
1003 { | 973 { |
1004 std::string pat = args(1).string_value (); | 974 std::string pat = args(1).string_value ("__ftp_mput__: PATTERN must be a string"); |
1005 | 975 |
1006 if (! error_state) | 976 if (! error_state) |
1007 { | 977 { |
1008 string_vector file_list; | 978 string_vector file_list; |
1009 | 979 |
1071 return retval; | 1041 return retval; |
1072 } | 1042 } |
1073 | 1043 |
1074 DEFUN (__ftp_mget__, args, , | 1044 DEFUN (__ftp_mget__, args, , |
1075 "-*- texinfo -*-\n\ | 1045 "-*- texinfo -*-\n\ |
1076 @deftypefn {Loadable Function} {} __ftp_mget__ (@var{handle}, @var{files})\n\ | 1046 @deftypefn {Loadable Function} {} __ftp_mget__ (@var{handle}, @var{pattern})\n\ |
1047 @deftypefnx {Loadable Function} {} __ftp_mget__ (@var{handle}, @var{pattern}, @var{target})\n\ | |
1077 Undocumented internal function\n\ | 1048 Undocumented internal function\n\ |
1078 @end deftypefn") | 1049 @end deftypefn") |
1079 { | 1050 { |
1080 octave_value retval; | 1051 octave_value retval; |
1081 | 1052 |
1087 { | 1058 { |
1088 url_transfer curl = ch_manager::get_object (args(0)); | 1059 url_transfer curl = ch_manager::get_object (args(0)); |
1089 | 1060 |
1090 if (curl.is_valid ()) | 1061 if (curl.is_valid ()) |
1091 { | 1062 { |
1092 std::string file = args(1).string_value (); | 1063 std::string file = args(1).string_value ("__ftp_mget__: PATTERN must be a string"); |
1093 std::string target; | 1064 std::string target; |
1094 | 1065 |
1095 if (nargin == 3) | 1066 if (nargin == 3) |
1096 target = args(2).string_value () + file_ops::dir_sep_str (); | 1067 target = args(2).string_value ("__ftp_mget__: TARGET must be a string") + file_ops::dir_sep_str (); |
1097 | 1068 |
1098 if (! error_state) | 1069 if (! error_state) |
1099 { | 1070 { |
1100 string_vector sv = curl.list (); | 1071 string_vector sv = curl.list (); |
1101 octave_idx_type n = 0; | 1072 octave_idx_type n = 0; |