You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

69 lines
1.6 KiB

diff -u -r ../psmisc-23.3/src/pstree.c ./src/pstree.c
--- ../psmisc-23.3/src/pstree.c 2019-10-23 10:40:19.516725375 +0000
+++ ./src/pstree.c 2020-01-12 00:27:42.797645090 +0000
@@ -36,7 +36,9 @@
#include <curses.h>
#include <term.h>
#include <termios.h>
-#include <langinfo.h>
+#ifndef __ANDROID__
+# include <langinfo.h>
+#endif
#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -47,6 +49,10 @@
#include "i18n.h"
#include "comm.h"
+#ifdef __ANDROID__
+#include <sys/sysinfo.h>
+#endif
+
#ifdef WITH_SELINUX
#include <selinux/selinux.h>
#else
@@ -904,6 +910,16 @@
static double
uptime()
{
+#ifdef __ANDROID__
+ /* Android does not allow read access to /proc/uptime */
+ struct sysinfo system_information;
+ if (sysinfo(&system_information) == 0) {
+ return (double) system_information.uptime;
+ } else {
+ fprintf(stderr, "pstree: error obtaining uptime from sysinfo\n");
+ exit(1);
+ }
+#else
char * savelocale;
char buf[2048];
FILE* file;
@@ -916,6 +932,7 @@
fclose(file);
setlocale(LC_NUMERIC,savelocale);
return atof(buf);
+#endif
}
/* process age from jiffies to seconds via uptime */
@@ -1292,6 +1309,10 @@
* command-line options, if given.
*/
+#ifdef __ANDROID__
+ /* Droids love unicode */
+ sym = &sym_utf;
+#else
if (isatty(1) && !strcmp(nl_langinfo(CODESET), "UTF-8")) {
/* Use UTF-8 symbols if the locale's character set is UTF-8. */
sym = &sym_utf;
@@ -1311,6 +1332,7 @@
/* Otherwise, fall back to ASCII. */
sym = &sym_ascii;
}
+#endif
#ifdef WITH_SELINUX
while ((c =