Mercurial > octave
annotate scripts/+matlab/+net/base64encode.m @ 31551:fd29c7a50a78 stable
maint: use commas, semicolons consistently with Octave conventions.
* makeValidName.m: Remove %!test and move BIST %!asserts to column 1.
* base64decode.m, base64encode.m, which.m, logm.m, uniquetol.m, perms.m:
Delete semicolon (';') at end of %!assert BIST.
* lin2mu.m, interp2.m, interpn.m, lsqnonneg.m, pqpnonneg.m, uniquetol.m,
betainc.m, normalize.m: Add semicolon (';') to end of assert statement within
%!test BIST.
* __memoize__.m, tar_is_bsd.m, publish.m: Add semicolon (';') to line with
keyword "persistent".
* stft.m: Use comma (',') after "case" keyword when code immediately follows.
* gallery.m: Align commas used in case statements in massive switch block.
Remove unnecessary parentheses around a numeric case argument.
* ranks.m: Remove semicolon (';') from case statemnt argument.
author | Rik <rik@octave.org> |
---|---|
date | Sat, 26 Nov 2022 06:32:08 -0800 |
parents | 796f54d4ddbf |
children | 597f3ee61a48 |
rev | line source |
---|---|
28769
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
1 ######################################################################## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
2 ## |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30355
diff
changeset
|
3 ## Copyright (C) 2020-2022 The Octave Project Developers |
28769
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
4 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
5 ## See the file COPYRIGHT.md in the top-level directory of this |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
6 ## distribution or <https://octave.org/copyright/>. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
7 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
8 ## This file is part of Octave. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
9 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
10 ## Octave is free software: you can redistribute it and/or modify it |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
11 ## under the terms of the GNU General Public License as published by |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
12 ## the Free Software Foundation, either version 3 of the License, or |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
13 ## (at your option) any later version. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
14 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
15 ## Octave is distributed in the hope that it will be useful, but |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
18 ## GNU General Public License for more details. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
19 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
20 ## You should have received a copy of the GNU General Public License |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
21 ## along with Octave; see the file COPYING. If not, see |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
22 ## <https://www.gnu.org/licenses/>. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
23 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
24 ######################################################################## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
25 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
26 ## -*- texinfo -*- |
30355
6a6efd7bb3ec
doc: grammarcheck texi files of Octave manual ahead of 7.1 release
Rik <rik@octave.org>
parents:
30329
diff
changeset
|
27 ## @deftypefn {} {@var{b64_str} =} matlab.net.base64encode (@var{in}) |
28769
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
28 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
29 ## Convert @var{in} to a base64 encoded string @var{b64_str}. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
30 ## |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
31 ## The input @var{in} can be a string or numeric vector. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
32 ## The output @var{b64_str} will be encoded according to RFC 4648. |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
33 ## |
30329
81d26e8481a6
maint: Shorten @seealso lines to less than 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
29359
diff
changeset
|
34 ## @seealso{matlab.net.base64decode, base64_decode, base64_encode, |
81d26e8481a6
maint: Shorten @seealso lines to less than 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
29359
diff
changeset
|
35 ## unicode2native} |
28769
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
36 ## @end deftypefn |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
37 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
38 function b64_str = base64encode (in) |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
39 |
28789
28de41192f3c
Eliminate unneeded verification of nargin, nargout in m-files.
Rik <rik@octave.org>
parents:
28769
diff
changeset
|
40 if (nargin != 1) |
28769
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
41 print_usage (); |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
42 endif |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
43 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
44 if (! isvector (in) || ! (isnumeric (in) || ischar (in))) |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
45 error ("base64encode: IN must be a numeric or character vector"); |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
46 endif |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
47 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
48 if (any (in != round (in))) |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
49 error ("base64encode: IN must consist of integers"); |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
50 endif |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
51 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
52 b64_str = base64_encode (uint8 (in)); |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
53 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
54 endfunction |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
55 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
56 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
57 ## Test char vector input |
31551
fd29c7a50a78
maint: use commas, semicolons consistently with Octave conventions.
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
58 %!assert (matlab.net.base64encode (1), "AQ==") |
fd29c7a50a78
maint: use commas, semicolons consistently with Octave conventions.
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
59 %!assert (matlab.net.base64encode (255), "/w==") |
fd29c7a50a78
maint: use commas, semicolons consistently with Octave conventions.
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
60 %!assert (matlab.net.base64encode (1:3), "AQID") |
fd29c7a50a78
maint: use commas, semicolons consistently with Octave conventions.
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
61 %!assert (matlab.net.base64encode ("a"), "YQ==") |
fd29c7a50a78
maint: use commas, semicolons consistently with Octave conventions.
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
62 %!assert (matlab.net.base64encode ("abcdefg"), "YWJjZGVmZw==") |
28769
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
63 |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
64 ## Test input validation |
28886
d8318c12d903
test: remove unnecessary BIST tests in m-files checking for excessive number of inputs.
Rik <rik@octave.org>
parents:
28789
diff
changeset
|
65 %!error <Invalid call> matlab.net.base64encode () |
28769
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
66 %!error <numeric or character vector> matlab.net.base64encode ({1,2}) |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
67 %!error <numeric or character vector> matlab.net.base64encode ([1,2;3,4]) |
903fe321649b
Add Matlab compatible wrappers for base64_encode and base64_decode.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff
changeset
|
68 %!error <consist of integers> matlab.net.base64encode (pi) |