| /* |
| * R : A Computer Language for Statistical Data Analysis |
| * Copyright (C) 2012-2017 The R Core Team. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, a copy is available at |
| * https://www.R-project.org/Licenses/ |
| */ |
| |
| #ifdef HAVE_CONFIG_H |
| #include <config.h> |
| #endif |
| |
| #include <R.h> |
| #include <Rinternals.h> |
| |
| #include "utils.h" |
| #include <R_ext/Rdynload.h> |
| #include <R_ext/Visibility.h> |
| |
| |
| #define CALLDEF(name, n) {#name, (DL_FUNC) &name, n} |
| |
| static const R_CallMethodDef CallEntries[] = { |
| CALLDEF(crc64, 1), |
| CALLDEF(flushconsole, 0), |
| CALLDEF(menu, 1), |
| CALLDEF(nsl, 1), |
| CALLDEF(objectSize, 1), |
| CALLDEF(processevents, 0), |
| CALLDEF(octsize, 1), |
| |
| /* Sockets */ |
| CALLDEF(sockconnect, 2), |
| CALLDEF(sockread, 2), |
| CALLDEF(sockclose, 1), |
| CALLDEF(sockopen, 1), |
| CALLDEF(socklisten, 1), |
| CALLDEF(sockwrite, 2), |
| |
| #ifdef Win32 |
| CALLDEF(winver, 0), |
| CALLDEF(dllversion, 1), |
| CALLDEF(getClipboardFormats, 0), |
| CALLDEF(readClipboard, 2), |
| CALLDEF(writeClipboard, 2), |
| CALLDEF(getIdentification, 0), |
| CALLDEF(getWindowTitle, 0), |
| CALLDEF(setWindowTitle, 1), |
| CALLDEF(setStatusBar, 1), |
| CALLDEF(chooseFiles, 5), |
| CALLDEF(chooseDir, 2), |
| CALLDEF(getWindowsHandle, 1), |
| CALLDEF(getWindowsHandles, 2), |
| CALLDEF(loadRconsole, 1), |
| CALLDEF(memsize, 1), |
| CALLDEF(shortpath, 1), |
| #endif |
| |
| {NULL, NULL, 0} |
| }; |
| |
| #define EXTDEF(name, n) {#name, (DL_FUNC) &name, n} |
| |
| static const R_ExternalMethodDef ExtEntries[] = { |
| #ifdef Win32 |
| EXTDEF(download, 7), |
| #else |
| EXTDEF(download, 6), |
| #endif |
| EXTDEF(unzip, 7), |
| EXTDEF(Rprof, 8), |
| EXTDEF(Rprofmem, 3), |
| |
| EXTDEF(countfields, 6), |
| EXTDEF(readtablehead, 7), |
| EXTDEF(typeconvert, 5), |
| EXTDEF(writetable, 11), |
| |
| EXTDEF(addhistory, 1), |
| EXTDEF(loadhistory, 1), |
| EXTDEF(savehistory, 1), |
| |
| EXTDEF(dataentry, 2), |
| EXTDEF(dataviewer, 2), |
| EXTDEF(edit, 4), |
| EXTDEF(fileedit, 3), |
| EXTDEF(selectlist, 4), |
| |
| #ifdef Win32 |
| EXTDEF(winProgressBar, 6), |
| EXTDEF(closeWinProgressBar, 1), |
| EXTDEF(setWinProgressBar, 4), |
| EXTDEF(winDialog, 2), |
| EXTDEF(winDialogString, 2), |
| EXTDEF(winMenuNames, 0), |
| EXTDEF(winMenuItems, 1), |
| EXTDEF(winMenuAdd, 3), |
| EXTDEF(winMenuDel, 2), |
| |
| EXTDEF(readRegistry, 4), |
| EXTDEF(arrangeWindows, 4), |
| #endif |
| |
| {NULL, NULL, 0} |
| }; |
| |
| |
| void attribute_visible |
| R_init_utils(DllInfo *dll) |
| { |
| R_registerRoutines(dll, NULL, CallEntries, NULL, ExtEntries); |
| R_useDynamicSymbols(dll, FALSE); |
| R_forceSymbols(dll, TRUE); |
| } |