]> git.feebdaed.xyz Git - 0xmirror/radare2.git/commitdiff
Add R2_DOCDIR and R2PM_DOCDIR variables ##tools
authorpancake <pancake@nowsecure.com>
Tue, 9 Dec 2025 19:45:55 +0000 (20:45 +0100)
committerGitHub <noreply@github.com>
Tue, 9 Dec 2025 19:45:55 +0000 (20:45 +0100)
libr/include/r_userconf.h.acr
libr/main/r2pm.c
libr/main/radare2.c
man/r2pm.1
meson.build

index eeb147d340cad733d3910bf8dec4744b95b655d9..242a2c1a570eaaa37764522233701feb113226c1 100644 (file)
@@ -57,6 +57,7 @@ extern "C" {
 #define R2_LIBDIR "@LIBDIR@"
 #define R2_BINDIR "@BINDIR@"
 #define R2_MANDIR "@MANDIR@"
+#define R2_DOCDIR "@DOCDIR@"
 #define R2_INCDIR "@INCLUDEDIR@"
 #define R2_DATDIR "@DATADIR@"
 #define R2_WWWROOT "@WWWROOT@"
@@ -76,6 +77,7 @@ extern "C" {
 #define R2_ETCDIR "etc"
 #define R2_BINDIR "bin"
 #define R2_MANDIR "man"
+#define R2_DOCDIR "doc"
 #define R2_LIBDIR "lib"
 #define R2_INCDIR "include\\libr"
 #define R2_DATDIR "share"
@@ -89,6 +91,7 @@ extern "C" {
 #define R2_LIBDIR "@LIBDIR@"
 #define R2_BINDIR "@BINDIR@"
 #define R2_MANDIR "@MANDIR@"
+#define R2_DOCDIR "@DOCDIR@"
 #define R2_INCDIR "@INCLUDEDIR@/libr"
 #define R2_DATDIR "@DATADIR@"
 #define R2_WWWROOT R2_DATDIR "/radare2/" R2_VERSION "/www"
index 5bb675f3c7de4ab0c40dbc485c678be0e471b467..67c7c19b3f8d36b012f88c35874827d1d64a3fe8 100644 (file)
@@ -507,6 +507,10 @@ static void r2pm_setenv(R2Pm *r2pm) {
        r_sys_setenv ("R2PM_MANDIR", mandir);
        free (mandir);
 
+       char *docdir = r_str_newf ("%s/doc", r2_prefix);
+       r_sys_setenv ("R2PM_DOCDIR", docdir);
+       free (docdir);
+
        char *r2pm_libdir = r_str_newf ("%s/lib", r2_prefix);
        r_sys_setenv ("R2PM_LIBDIR", r2pm_libdir);
 #if R2__WINDOWS__
@@ -1180,6 +1184,7 @@ static void r2pm_envhelp(void) {
        char *r2pm_plugdir = r_sys_getenv ("R2PM_PLUGDIR");
        char *r2pm_bindir = r_sys_getenv ("R2PM_BINDIR");
        char *r2pm_mandir = r_sys_getenv ("R2PM_MANDIR");
+       char *r2pm_docdir = r_sys_getenv ("R2PM_DOCDIR");
        char *r2pm_libdir = r_sys_getenv ("R2PM_LIBDIR");
        char *r2pm_dbdir = r_sys_getenv ("R2PM_DBDIR");
        char *r2pm_prefix = r_sys_getenv ("R2PM_PREFIX");
@@ -1199,6 +1204,7 @@ static void r2pm_envhelp(void) {
        "R2PM_PREFIX=%s\n"
        "R2PM_BINDIR=%s\n"
        "R2PM_MANDIR=%s\n"
+       "R2PM_DOCDIR=%s\n"
        "R2PM_LIBDIR=%s\n"
        "R2PM_DBDIR=%s\n"
        "R2PM_GITDIR=%s\n"
@@ -1212,6 +1218,7 @@ static void r2pm_envhelp(void) {
                r2pm_prefix,
                r2pm_bindir,
                r2pm_mandir,
+               r2pm_docdir,
                r2pm_libdir,
                r2pm_dbdir,
                r2pm_gitdir,
@@ -1223,6 +1230,8 @@ static void r2pm_envhelp(void) {
        free (r2pm_prefix);
        free (r2pm_bindir);
        free (r2pm_mandir);
+       free (r2pm_docdir);
+       free (r2pm_libdir);
        free (r2pm_dbdir);
        free (r2pm_gitdir);
        free (r2pm_giturl);
index 60f3b42201a3d590572ba84187edaae8b6f2c827..f8773b3f03ff9a7ba3bbf90402bef2ea299cee7e 100644 (file)
@@ -1,6 +1,9 @@
 /* radare - LGPL - Copyright 2009-2025 - pancake */
 
 #include "r_userconf.h"
+#ifndef R2_DOCDIR
+#define R2_DOCDIR "share/doc/radare2"
+#endif
 #include "r_util/r_str.h"
 #include "r_util/r_sys.h"
 #include <r_main.h>
@@ -298,6 +301,7 @@ static int main_help(int line) {
                                " R2_INCDIR    " R2_INCDIR "\n"
                                " R2_BINDIR    " R2_BINDIR "\n"
                                " R2_MANDIR    " R2_MANDIR "\n"
+                               " R2_DOCDIR    " R2_DOCDIR "\n"
                                " R2_LIBDIR    " R2_LIBDIR "\n"
                                " R2_LIBEXT    " R_LIB_EXT "\n"
                                " R2_PREFIX    " R2_PREFIX "\n",
@@ -320,11 +324,13 @@ static int main_print_var(const char *var_name) {
        char *libdir = r_str_r2_prefix (R2_LIBDIR);
        char *bindir = r_str_r2_prefix (R2_BINDIR);
        char *mandir = r_str_r2_prefix (R2_MANDIR);
+       char *docdir = r_str_r2_prefix (R2_DOCDIR);
 #else
        char *incdir = strdup (R2_INCDIR);
        char *libdir = strdup (R2_LIBDIR);
        char *bindir = strdup (R2_BINDIR);
        char *mandir = strdup (R2_MANDIR);
+       char *docdir = strdup (R2_DOCDIR);
 #endif
        char *rcfile = r_file_home (".radare2rc");
        char *confighome = r_xdg_configdir (NULL);
@@ -332,6 +338,8 @@ static int main_print_var(const char *var_name) {
        char *cachehome = r_xdg_cachedir (NULL);
        char *homeplugins = r_xdg_datadir ("plugins");
        char *homezigns = r_xdg_datadir ("zigns");
+       char *homedoc = r_xdg_datadir ("doc");
+       // printf ("homedoc = %s\n", homedoc);
        char *plugins = r_str_r2_prefix (R2_PLUGINS);
        char *magicpath = r_str_r2_prefix (R2_SDB_MAGIC);
        char *historyhome = r_xdg_cachedir ("history");
@@ -354,6 +362,7 @@ static int main_print_var(const char *var_name) {
                { "R2_INCDIR", incdir },
                { "R2_BINDIR", bindir },
                { "R2_MANDIR", mandir },
+               { "R2_DOCDIR", docdir },
                { "R2_RCFILE", rcfile },
                { "R2_LIBDIR", libdir },
                { "R2_LIBEXT", R_LIB_EXT },
@@ -363,6 +372,7 @@ static int main_print_var(const char *var_name) {
                { "R2_CACHE_HOME", cachehome }, //  from xdg
                { "R2_LIBR_PLUGINS", plugins },
                { "R2_USER_PLUGINS", homeplugins },
+               { "R2_USER_DOCDIR", homedoc },
                { "R2_ZIGNS_HOME", homezigns },
                { "R2_CFLAGS", r2_cflags },
                { "R2_LDFLAGS", r2_ldflags },
@@ -393,6 +403,7 @@ static int main_print_var(const char *var_name) {
        free (datahome);
        free (cachehome);
        free (homeplugins);
+       free (homedoc);
        free (homezigns);
        free (plugins);
        free (magicpath);
index 1680500b11fbf5b4228e2dc47ba5271c5a71bc1a..3cb94ab4c7a44344a4c7817066d577735a068f58 100644 (file)
@@ -66,6 +66,10 @@ Command to use for system-wide installs (default: sudo)
 Directory for user plugins (default: ~/.local/share/radare2/plugins)
 .It Ev R2PM_BINDIR
 Directory for user binaries (default: ~/.local/share/radare2/prefix/bin)
+.It Ev R2PM_MANDIR
+Directory for user man pages (default: ~/.local/share/radare2/prefix/man)
+.It Ev R2PM_DOCDIR
+Directory for user documentation (default: ~/.local/share/radare2/prefix/doc)
 .It Ev R2PM_OFFLINE
 Disable online operations (default: 0)
 .It Ev R2PM_DBDIR
index a9ad257d8ea1d72c63a9e63dbd95b53b774f059a..a82650b5491079db332ea2a71690384cd29dda63 100644 (file)
@@ -183,6 +183,7 @@ if host_machine.system() == 'windows'
   r2_sdb = join_paths(r2_datdir)
   r2_zigns = join_paths(r2_datdir, 'zigns')
   r2_scripts = join_paths(r2_datdir, 'scripts')
+  r2_docdir = join_paths(r2_datdir, 'doc', 'radare2')
   r2_themes = join_paths(r2_datdir, 'cons')
   r2_panels = join_paths(r2_datdir, 'panels')
   r2_platform = join_paths(r2_datdir, 'platform')
@@ -227,6 +228,7 @@ else
   r2_libdir = get_option('libdir')
   r2_incdir = join_paths(get_option('includedir'), 'libr')
   r2_datdir = get_option('datadir')
+  r2_docdir = join_paths(r2_datdir, 'doc', 'radare2')
   r2_datdir_r2 = join_paths(r2_datdir, 'radare2')
   r2_wwwroot = join_paths(r2_datdir_r2, r2_version, 'www')
   r2_sdb = join_paths(r2_datdir_r2, r2_version)
@@ -388,6 +390,7 @@ userconf.set('ETCDIR', join_paths(r2_prefix, 'etc'))
 userconf.set('PREFIX', r2_prefix)
 userconf.set('BINDIR', join_paths(r2_prefix, 'bin'))
 userconf.set('MANDIR', join_paths(r2_datdir, 'man'))
+userconf.set('DOCDIR', r2_docdir)
 if host_machine.system() == 'windows'
   userconf.set('LIBDIR', r2_libdir)
   userconf.set('INCLUDEDIR', r2_incdir)