Fossil SCM

For the "fossil sys ls -l" command, show the mtime to a resolution of one second. Use the minimum amount of width required to show file size.

drh 2025-11-03 17:20 system-cmd
Commit 2c855a53480ae2cd2c3fd1a3f5f28b508662a0542504149b7071f0d76eca645b
1 file changed +10 -3
+10 -3
--- src/xsystem.c
+++ src/xsystem.c
@@ -164,13 +164,19 @@
164164
){
165165
sqlite3_stmt *pStmt;
166166
if( (mFlags & LS_LONG)!=0 ){
167167
/* Long mode */
168168
char *zSql;
169
+ int szSz = 8;
170
+ sqlite3_prepare_v2(db, "SELECT length(max(size)) FROM ls", -1, &pStmt, 0);
171
+ if( sqlite3_step(pStmt)==SQLITE_ROW ){
172
+ szSz = sqlite3_column_int(pStmt, 0);
173
+ }
174
+ sqlite3_finalize(pStmt);
175
+ pStmt = 0;
169176
zSql = mprintf(
170
- "SELECT mode, size, strftime('%%Y-%%m-%%d %%H:%%M',"
171
- "mtime,'unixepoch'), fn"
177
+ "SELECT mode, size, datetime(mtime,'unixepoch'), fn"
172178
" FROM ls ORDER BY %s",
173179
xsystem_ls_orderby(mFlags));
174180
sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
175181
while( sqlite3_step(pStmt)==SQLITE_ROW ){
176182
char zMode[12];
@@ -195,12 +201,13 @@
195201
if( mode & 0010 ) zMode[6] = 'x';
196202
if( mode & 0004 ) zMode[7] = 'r';
197203
if( mode & 0002 ) zMode[8] = 'w';
198204
if( mode & 0001 ) zMode[9] = 'x';
199205
#endif
200
- fossil_print("%s %12lld %s %s\n",
206
+ fossil_print("%s %*lld %s %s\n",
201207
zMode,
208
+ szSz,
202209
sqlite3_column_int64(pStmt, 1),
203210
sqlite3_column_text(pStmt, 2),
204211
zName);
205212
}
206213
sqlite3_finalize(pStmt);
207214
--- src/xsystem.c
+++ src/xsystem.c
@@ -164,13 +164,19 @@
164 ){
165 sqlite3_stmt *pStmt;
166 if( (mFlags & LS_LONG)!=0 ){
167 /* Long mode */
168 char *zSql;
 
 
 
 
 
 
 
169 zSql = mprintf(
170 "SELECT mode, size, strftime('%%Y-%%m-%%d %%H:%%M',"
171 "mtime,'unixepoch'), fn"
172 " FROM ls ORDER BY %s",
173 xsystem_ls_orderby(mFlags));
174 sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
175 while( sqlite3_step(pStmt)==SQLITE_ROW ){
176 char zMode[12];
@@ -195,12 +201,13 @@
195 if( mode & 0010 ) zMode[6] = 'x';
196 if( mode & 0004 ) zMode[7] = 'r';
197 if( mode & 0002 ) zMode[8] = 'w';
198 if( mode & 0001 ) zMode[9] = 'x';
199 #endif
200 fossil_print("%s %12lld %s %s\n",
201 zMode,
 
202 sqlite3_column_int64(pStmt, 1),
203 sqlite3_column_text(pStmt, 2),
204 zName);
205 }
206 sqlite3_finalize(pStmt);
207
--- src/xsystem.c
+++ src/xsystem.c
@@ -164,13 +164,19 @@
164 ){
165 sqlite3_stmt *pStmt;
166 if( (mFlags & LS_LONG)!=0 ){
167 /* Long mode */
168 char *zSql;
169 int szSz = 8;
170 sqlite3_prepare_v2(db, "SELECT length(max(size)) FROM ls", -1, &pStmt, 0);
171 if( sqlite3_step(pStmt)==SQLITE_ROW ){
172 szSz = sqlite3_column_int(pStmt, 0);
173 }
174 sqlite3_finalize(pStmt);
175 pStmt = 0;
176 zSql = mprintf(
177 "SELECT mode, size, datetime(mtime,'unixepoch'), fn"
 
178 " FROM ls ORDER BY %s",
179 xsystem_ls_orderby(mFlags));
180 sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
181 while( sqlite3_step(pStmt)==SQLITE_ROW ){
182 char zMode[12];
@@ -195,12 +201,13 @@
201 if( mode & 0010 ) zMode[6] = 'x';
202 if( mode & 0004 ) zMode[7] = 'r';
203 if( mode & 0002 ) zMode[8] = 'w';
204 if( mode & 0001 ) zMode[9] = 'x';
205 #endif
206 fossil_print("%s %*lld %s %s\n",
207 zMode,
208 szSz,
209 sqlite3_column_int64(pStmt, 1),
210 sqlite3_column_text(pStmt, 2),
211 zName);
212 }
213 sqlite3_finalize(pStmt);
214

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button