diff -uNr fltk-1.3.5/fluid/ExternalCodeEditor_UNIX.cxx fltk-1.3.5.mod/fluid/ExternalCodeEditor_UNIX.cxx --- fltk-1.3.5/fluid/ExternalCodeEditor_UNIX.cxx 2019-03-03 10:40:23.000000000 +0200 +++ fltk-1.3.5.mod/fluid/ExternalCodeEditor_UNIX.cxx 2019-05-19 17:18:25.294720046 +0300 @@ -214,8 +214,8 @@ // Returns pointer to static memory. // const char* ExternalCodeEditor::tmpdir_name() { - static char dirname[100]; - snprintf(dirname, sizeof(dirname), "/tmp/.fluid-%ld", (long)getpid()); + static char dirname[100] = {0}; + snprintf(dirname, sizeof(dirname), "@TERMUX_PREFIX@/tmp/.fluid-%ld", (long)getpid()); return dirname; } diff -uNr fltk-1.3.5/src/Fl_File_Browser.cxx fltk-1.3.5.mod/src/Fl_File_Browser.cxx --- fltk-1.3.5/src/Fl_File_Browser.cxx 2019-03-03 10:40:23.000000000 +0200 +++ fltk-1.3.5.mod/src/Fl_File_Browser.cxx 2019-05-19 17:18:25.295720052 +0300 @@ -624,13 +624,16 @@ // Open the file that contains a list of mounted filesystems... // - mtab = fl_fopen("/etc/mnttab", "r"); // Fairly standard + mtab = fl_fopen("@TERMUX_PREFIX@/etc/mnttab", "r"); // Fairly standard if (mtab == NULL) - mtab = fl_fopen("/etc/mtab", "r"); // More standard + mtab = fl_fopen("@TERMUX_PREFIX@/etc/mtab", "r"); // More standard if (mtab == NULL) - mtab = fl_fopen("/etc/fstab", "r"); // Otherwise fallback to full list + mtab = fl_fopen("@TERMUX_PREFIX@/etc/fstab", "r"); // Otherwise fallback to full list if (mtab == NULL) - mtab = fl_fopen("/etc/vfstab", "r"); // Alternate full list file + mtab = fl_fopen("@TERMUX_PREFIX@/etc/vfstab", "r"); // Alternate full list file + + if (mtab == NULL) + mtab = fl_fopen("/proc/mounts", "r"); // Try to use /proc/mounts if (mtab != NULL) { diff -uNr fltk-1.3.5/src/Fl_File_Icon2.cxx fltk-1.3.5.mod/src/Fl_File_Icon2.cxx --- fltk-1.3.5/src/Fl_File_Icon2.cxx 2019-03-03 10:40:23.000000000 +0200 +++ fltk-1.3.5.mod/src/Fl_File_Icon2.cxx 2019-05-19 17:18:25.297720063 +0300 @@ -677,9 +677,9 @@ if (!kdedir) { // Figure out where KDE is installed... if ((kdedir = getenv("KDEDIR")) == NULL) { - if (!access("/opt/kde", F_OK)) kdedir = "/opt/kde"; - else if (!access("/usr/local/share/mimelnk", F_OK)) kdedir = "/usr/local"; - else kdedir = "/usr"; + if (!access("@TERMUX_PREFIX@/opt/kde", F_OK)) kdedir = "@TERMUX_PREFIX@/opt/kde"; + else if (!access("@TERMUX_PREFIX@/share/mimelnk", F_OK)) kdedir = "@TERMUX_PREFIX@"; + else kdedir = "@TERMUX_PREFIX@"; } } @@ -715,66 +715,66 @@ snprintf(filename, sizeof(filename), "%s/share/mimelnk", kdedir); load_kde_icons(filename, icondir); - } else if (!access("/usr/share/icons/folder.xpm", F_OK)) { + } else if (!access("@TERMUX_PREFIX@/share/icons/folder.xpm", F_OK)) { // Load GNOME icons... icon = new Fl_File_Icon("*", Fl_File_Icon::PLAIN); - icon->load_image("/usr/share/icons/page.xpm"); + icon->load_image("@TERMUX_PREFIX@/share/icons/page.xpm"); icon = new Fl_File_Icon("*", Fl_File_Icon::DIRECTORY); - icon->load_image("/usr/share/icons/folder.xpm"); - } else if (!access("/usr/dt/appconfig/icons", F_OK)) { + icon->load_image("@TERMUX_PREFIX@/share/icons/folder.xpm"); + } else if (!access("@TERMUX_PREFIX@/dt/appconfig/icons", F_OK)) { // Load CDE icons... icon = new Fl_File_Icon("*", Fl_File_Icon::PLAIN); - icon->load_image("/usr/dt/appconfig/icons/C/Dtdata.m.pm"); + icon->load_image("@TERMUX_PREFIX@/dt/appconfig/icons/C/Dtdata.m.pm"); icon = new Fl_File_Icon("*", Fl_File_Icon::DIRECTORY); - icon->load_image("/usr/dt/appconfig/icons/C/DtdirB.m.pm"); + icon->load_image("@TERMUX_PREFIX@/dt/appconfig/icons/C/DtdirB.m.pm"); icon = new Fl_File_Icon("core", Fl_File_Icon::PLAIN); - icon->load_image("/usr/dt/appconfig/icons/C/Dtcore.m.pm"); + icon->load_image("@TERMUX_PREFIX@/dt/appconfig/icons/C/Dtcore.m.pm"); icon = new Fl_File_Icon("*.{bmp|bw|gif|jpg|pbm|pcd|pgm|ppm|png|ras|rgb|tif|xbm|xpm}", Fl_File_Icon::PLAIN); - icon->load_image("/usr/dt/appconfig/icons/C/Dtimage.m.pm"); + icon->load_image("@TERMUX_PREFIX@/dt/appconfig/icons/C/Dtimage.m.pm"); icon = new Fl_File_Icon("*.{eps|pdf|ps}", Fl_File_Icon::PLAIN); - icon->load_image("/usr/dt/appconfig/icons/C/Dtps.m.pm"); + icon->load_image("@TERMUX_PREFIX@/dt/appconfig/icons/C/Dtps.m.pm"); icon = new Fl_File_Icon("*.ppd", Fl_File_Icon::PLAIN); - icon->load_image("/usr/dt/appconfig/icons/C/DtPrtpr.m.pm"); - } else if (!access("/usr/lib/filetype", F_OK)) { + icon->load_image("@TERMUX_PREFIX@/dt/appconfig/icons/C/DtPrtpr.m.pm"); + } else if (!access("@TERMUX_PREFIX@/lib/filetype", F_OK)) { // Load SGI icons... icon = new Fl_File_Icon("*", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/iconlib/generic.doc.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/iconlib/generic.doc.fti"); icon = new Fl_File_Icon("*", Fl_File_Icon::DIRECTORY); - icon->load_fti("/usr/lib/filetype/iconlib/generic.folder.closed.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/iconlib/generic.folder.closed.fti"); icon = new Fl_File_Icon("core", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/default/iconlib/CoreFile.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/default/iconlib/CoreFile.fti"); icon = new Fl_File_Icon("*.{bmp|bw|gif|jpg|pbm|pcd|pgm|ppm|png|ras|rgb|tif|xbm|xpm}", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/system/iconlib/ImageFile.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/system/iconlib/ImageFile.fti"); - if (!access("/usr/lib/filetype/install/iconlib/acroread.doc.fti", F_OK)) { + if (!access("@TERMUX_PREFIX@/lib/filetype/install/iconlib/acroread.doc.fti", F_OK)) { icon = new Fl_File_Icon("*.{eps|ps}", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/system/iconlib/PostScriptFile.closed.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/system/iconlib/PostScriptFile.closed.fti"); icon = new Fl_File_Icon("*.pdf", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/install/iconlib/acroread.doc.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/install/iconlib/acroread.doc.fti"); } else { icon = new Fl_File_Icon("*.{eps|pdf|ps}", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/system/iconlib/PostScriptFile.closed.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/system/iconlib/PostScriptFile.closed.fti"); } - if (!access("/usr/lib/filetype/install/iconlib/html.fti", F_OK)) { + if (!access("@TERMUX_PREFIX@/lib/filetype/install/iconlib/html.fti", F_OK)) { icon = new Fl_File_Icon("*.{htm|html|shtml}", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/iconlib/generic.doc.fti"); - icon->load_fti("/usr/lib/filetype/install/iconlib/html.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/iconlib/generic.doc.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/install/iconlib/html.fti"); } - if (!access("/usr/lib/filetype/install/iconlib/color.ps.idle.fti", F_OK)) { + if (!access("@TERMUX_PREFIX@/lib/filetype/install/iconlib/color.ps.idle.fti", F_OK)) { icon = new Fl_File_Icon("*.ppd", Fl_File_Icon::PLAIN); - icon->load_fti("/usr/lib/filetype/install/iconlib/color.ps.idle.fti"); + icon->load_fti("@TERMUX_PREFIX@/lib/filetype/install/iconlib/color.ps.idle.fti"); } } else { // Create the default icons... diff -uNr fltk-1.3.5/src/fl_open_uri.cxx fltk-1.3.5.mod/src/fl_open_uri.cxx --- fltk-1.3.5/src/fl_open_uri.cxx 2019-03-03 10:40:23.000000000 +0200 +++ fltk-1.3.5.mod/src/fl_open_uri.cxx 2019-05-19 17:18:25.298720069 +0300 @@ -275,7 +275,7 @@ *end; // End of filename buffer - if ((path = getenv("PATH")) == NULL) path = "/bin:/usr/bin"; + if ((path = getenv("PATH")) == NULL) path = "@TERMUX_PREFIX@/bin:@TERMUX_PREFIX@/bin/applets:/system/xbin:/system/bin"; for (ptr = filename, end = filename + filesize - 1; *path; path ++) { if (*path == ':') { diff -uNr fltk-1.3.5/src/Fl_Preferences.cxx fltk-1.3.5.mod/src/Fl_Preferences.cxx --- fltk-1.3.5/src/Fl_Preferences.cxx 2019-03-03 10:40:23.000000000 +0200 +++ fltk-1.3.5.mod/src/Fl_Preferences.cxx 2019-05-19 17:18:25.299720075 +0300 @@ -963,7 +963,8 @@ vendor_(0L), application_(0L) { - char filename[ FL_PATH_MAX ]; filename[0] = 0; + char filename[ FL_PATH_MAX ] = {0}; + #ifdef WIN32 # define FLPREFS_RESOURCE "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" # define FLPREFS_RESOURCEW L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" @@ -1049,7 +1050,7 @@ break; } case SYSTEM: - strcpy(filename, "/etc/fltk/"); + strcpy(filename, "@TERMUX_PREFIX@/etc/fltk/"); break; } snprintf(filename + strlen(filename), sizeof(filename) - strlen(filename), @@ -1162,20 +1163,6 @@ fprintf( f, "; application: %s\n", application_ ); prefs_->node->write( f ); fclose( f ); -#if !(defined(__APPLE__) || defined(WIN32)) - // unix: make sure that system prefs are user-readable - if (strncmp(filename_, "/etc/fltk/", 10) == 0) { - char *p; - p = filename_ + 9; - do { // for each directory to the pref file - *p = 0; - fl_chmod(filename_, 0755); // rwxr-xr-x - *p = '/'; - p = strchr(p+1, '/'); - } while (p); - fl_chmod(filename_, 0644); // rw-r--r-- - } -#endif return 0; } @@ -1191,12 +1178,6 @@ if ( !s ) return 0; *s = 0; char ret = fl_make_path( path ); -#if !(defined(__APPLE__) || defined(WIN32)) - // unix: make sure that system prefs dir. is user-readable - if (strncmp(path, "/etc/fltk/", 10) == 0) { - fl_chmod(path, 0755); // rwxr-xr-x - } -#endif strcpy( s, "/" ); return ret; } diff -uNr fltk-1.3.5/src/Fl_x.cxx fltk-1.3.5.mod/src/Fl_x.cxx --- fltk-1.3.5/src/Fl_x.cxx 2019-03-03 10:40:23.000000000 +0200 +++ fltk-1.3.5.mod/src/Fl_x.cxx 2019-05-19 17:18:25.301720087 +0300 @@ -1481,9 +1481,9 @@ if (!fl_selection_requestor) return 0; if (Fl::e_clipboard_type == Fl::clipboard_image) { if (bytesread == 0) return 0; - static char tmp_fname[21]; + static char tmp_fname[52] = {0}; static Fl_Shared_Image *shared = 0; - strcpy(tmp_fname, "/tmp/clipboardXXXXXX"); + strcpy(tmp_fname, "@TERMUX_PREFIX@/tmp/clipboardXXXXXX"); int fd = mkstemp(tmp_fname); if (fd == -1) return 0; uchar *p = sn_buffer; ssize_t towrite = bytesread, written; diff -uNr fltk-1.3.5/src/print_panel.cxx fltk-1.3.5.mod/src/print_panel.cxx --- fltk-1.3.5/src/print_panel.cxx 2019-03-03 10:40:23.000000000 +0200 +++ fltk-1.3.5.mod/src/print_panel.cxx 2019-05-19 17:18:25.302720092 +0300 @@ -533,7 +533,7 @@ defname[0] = '\0'; // get names of all printers and of default one - if ((lpstat = popen("LC_MESSAGES=C LANG=C /bin/sh -c '(lpstat -p -d ) 2>&-'", "r")) != NULL) { // try first with SystemV printing system + if ((lpstat = popen("LC_MESSAGES=C LANG=C @TERMUX_PREFIX@/bin/sh -c '(lpstat -p -d ) 2>&-'", "r")) != NULL) { // try first with SystemV printing system while (fgets(line, sizeof(line), lpstat)) { if (!strncmp(line, "printer ", 8) && sscanf(line + 8, "%s", name) == 1) { @@ -550,7 +550,7 @@ pclose(lpstat); } - if (print_choice->size() == 2 && (lpstat = fopen("/etc/printcap", "r"))) { // try next with BSD printing system + if (print_choice->size() == 2 && (lpstat = fopen("@TERMUX_PREFIX@/etc/printcap", "r"))) { // try next with BSD printing system while (fgets(line, sizeof(line),lpstat)) { // get names of all known printers if (*line == '#' || (p = strchr(line, '|')) == NULL) continue; *p = 0; @@ -593,7 +593,7 @@ status[0] = 0; if (print_choice->value()) { strcpy(status, "printer status unavailable"); - snprintf(command, sizeof(command), "/bin/sh -c \"(lpstat -p '%s' ) 2>&-\" ", printer); // try first with SystemV printing system + snprintf(command, sizeof(command), "@TERMUX_PREFIX@/bin/sh -c \"(lpstat -p '%s' ) 2>&-\" ", printer); // try first with SystemV printing system if ((lpstat = popen(command, "r")) != NULL) { if (fgets(status, sizeof(status), lpstat) == 0) { // if no reply pclose(lpstat);