Biancaa-R commented on code in PR #3406:
URL: https://github.com/apache/nuttx-apps/pull/3406#discussion_r2844436181
##########
nshlib/nsh_fscmds.c:
##########
@@ -364,7 +367,126 @@ static int ls_handler(FAR struct nsh_vtbl_s *vtbl, FAR
const char *dirpath,
memset(&buf, 0, sizeof(struct stat));
- /* stat the file */
+ /* If entryp is provided, listing a directory and need to
+ * construct the full path to stat the file. Otherwise, dirpath
+ * is the target itself. (no separate file name as entryp)
+ */
+
+ if (entryp != NULL)
+ {
+ FAR char *fullpath = nsh_getdirpath(vtbl, dirpath, entryp->d_name);
+ ret = stat(fullpath, &buf);
+ free(fullpath);
+ }
+ else
+ {
+ ret = stat(dirpath, &buf);
+ }
+
+#ifdef CONFIG_CLOCK_TIMEKEEPING
+ /* manual epoch time to date calculation to reduce extra memory
+ * by using includes For boards with minimal flash.
+ */
+
+# ifdef CONFIG_ARCH_SIM
+ struct timespec ts;
+
+ /* This pulls the ACTUAL current time from your Linux Host */
+
+ /* Sometime defaults to 2008 */
+
+ if (clock_gettime(CLOCK_REALTIME, &ts) == 0)
+ {
+ clock_settime(CLOCK_REALTIME, &ts);
+ }
+# endif
+
+ /* for referencing /data : if not mounted the reference will fail. */
+
+# if defined(CONFIG_ARCH_SIM) && defined(CONFIG_FS_HOSTFS)
+ static bool g_time_synced = false;
+
+ if (!g_time_synced)
+ {
+ struct stat hstat;
+
+ /* Data section always maintains the current time value. */
+
+ if (stat("/data", &hstat) == 0)
+ {
+ struct timespec ts_sync;
+
+ ts_sync.tv_sec = hstat.st_mtime;
+ ts_sync.tv_nsec = 0;
+
+ /* This is the magic line that sets the system clock */
+
+ if (clock_settime(CLOCK_REALTIME, &ts_sync) == 0)
+ {
+ g_time_synced = true;
+ }
+ }
+ }
+# endif
+
+ if (ret == 0 && buf.st_mtime > 0 && buf.st_mtime < 0x7fffffff)
Review Comment:
I dont know , but strftime() is a heavy function that pulls in a lot of the
standard C library (libc). Many NuttX boards are configured with
CONFIG_LIBC_LOCALTIME disabled to save space. The main reason I added a manual
calculation for epoch to datetime is to save space . please look at :
https://github.com/apache/nuttx-apps/pull/3406#issuecomment-3935605561
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]