<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/31662758af746ac340098001c52bb524318dcaa6">https://github.com/macports/macports-ports/commit/31662758af746ac340098001c52bb524318dcaa6</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 31662758af746ac340098001c52bb524318dcaa6
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Wed Feb 22 06:32:42 2023 +0800
<span style='display:block; white-space:pre;color:#404040;'> R-readstata13: new port
</span>---
R/R-readstata13/Portfile | 24 +++++++++
R/R-readstata13/files/patch-big-endian.diff | 80 +++++++++++++++++++++++++++++
2 files changed, 104 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/R/R-readstata13/Portfile b/R/R-readstata13/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..c39d1dfc3ff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/R/R-readstata13/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup R 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+R.setup github sjewo readstata13 0.10.0 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license GPL-2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Import Stata data files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description {*}${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 9a976d33fb4e122ea60b1306244b8f4c93811e4c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 9d004aa6d42f962786c0b1012dfd75fe59ebd100c8d6057ed88bdd38a7335c9b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 62642
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:R-Rcpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-big-endian.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compilers.setup require_fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_test-append port:R-testthat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test.run yes
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/R/R-readstata13/files/patch-big-endian.diff b/R/R-readstata13/files/patch-big-endian.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..018a07fd49f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/R/R-readstata13/files/patch-big-endian.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,80 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/sjewo/readstata13/commit/e1142421200e342173dd852194a26eedec627796
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/RcppExports.cpp.orig 2021-05-25 18:50:49.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/RcppExports.cpp 2023-02-22 06:20:26.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,6 +5,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace Rcpp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef RCPP_USE_GLOBAL_ROSTREAM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Rcpp::Rostream<true>& Rcpp::Rcout = Rcpp::Rcpp_cout_get();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Rcpp::Rostream<false>& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // stata_read
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ List stata_read(const char * filePath, const bool missing, const IntegerVector selectrows, const CharacterVector selectcols, const bool strlexport, const CharacterVector strlpath);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RcppExport SEXP _readstata13_stata_read(SEXP filePathSEXP, SEXP missingSEXP, SEXP selectrowsSEXP, SEXP selectcolsSEXP, SEXP strlexportSEXP, SEXP strlpathSEXP) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/read_data.cpp.orig 2021-05-25 18:50:49.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/read_data.cpp 2023-02-22 06:20:54.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -207,7 +207,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // FixMe: works if we read a big-endian file on little-endian
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (byteorder.compare("MSF")==0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- v = (z >> 48) & ((1 << 24) - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v = (z >> 40) & ((1 << 24) - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ o = z & ((1 << 24) - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/save_dta.cpp.orig 2021-05-25 18:50:49.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/save_dta.cpp 2023-02-22 06:23:10.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,6 +20,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace Rcpp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace std;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// // create big endian file from little endian
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #ifdef swapit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #undef swapit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #undef sbyteorder
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #undef SBYTEORDER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #define swapit TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #define sbyteorder "MSF"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #define SBYTEORDER 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Writes the binary Stata file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // @param filePath The full systempath to the dta file you want to export.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -483,13 +493,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char z[8];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // push back every v, o and val_strl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- V.push_back(v);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ V.push_back(v); if (swapit) v = swap_endian(v);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ O.push_back(o);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // z is 'vv-- ----'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memcpy(&z[0], &v, sizeof(v));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (SBYTEORDER == 1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- o <<= 16;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ o <<= 16; if (swapit) o = swap_endian(o);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memcpy(&z[2], &o, 6);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // z is 'vvoo oooo'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -509,10 +519,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ V.push_back(v);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ O.push_back(o);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- // z is 'vv-- ----'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- memcpy(&z[0], &v, sizeof(v));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // z is 'vvv- ----'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (SBYTEORDER == 1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v <<= 8; if (swapit) v = swap_endian(v);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy(&z[0], &v, 3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (SBYTEORDER == 1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- o <<= 24;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ o <<= 24; if (swapit) o = swap_endian(o);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memcpy(&z[3], &o, 5);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // z is 'vvvo oooo'
</span></pre><pre style='margin:0'>
</pre>