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.
Commit
2c855a53480ae2cd2c3fd1a3f5f28b508662a0542504149b7071f0d76eca645b
Parent
13de44edf7fcf86…
1 file changed
+10
-3
+10
-3
| --- src/xsystem.c | ||
| +++ src/xsystem.c | ||
| @@ -164,13 +164,19 @@ | ||
| 164 | 164 | ){ |
| 165 | 165 | sqlite3_stmt *pStmt; |
| 166 | 166 | if( (mFlags & LS_LONG)!=0 ){ |
| 167 | 167 | /* Long mode */ |
| 168 | 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; | |
| 169 | 176 | zSql = mprintf( |
| 170 | - "SELECT mode, size, strftime('%%Y-%%m-%%d %%H:%%M'," | |
| 171 | - "mtime,'unixepoch'), fn" | |
| 177 | + "SELECT mode, size, datetime(mtime,'unixepoch'), fn" | |
| 172 | 178 | " FROM ls ORDER BY %s", |
| 173 | 179 | xsystem_ls_orderby(mFlags)); |
| 174 | 180 | sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0); |
| 175 | 181 | while( sqlite3_step(pStmt)==SQLITE_ROW ){ |
| 176 | 182 | char zMode[12]; |
| @@ -195,12 +201,13 @@ | ||
| 195 | 201 | if( mode & 0010 ) zMode[6] = 'x'; |
| 196 | 202 | if( mode & 0004 ) zMode[7] = 'r'; |
| 197 | 203 | if( mode & 0002 ) zMode[8] = 'w'; |
| 198 | 204 | if( mode & 0001 ) zMode[9] = 'x'; |
| 199 | 205 | #endif |
| 200 | - fossil_print("%s %12lld %s %s\n", | |
| 206 | + fossil_print("%s %*lld %s %s\n", | |
| 201 | 207 | zMode, |
| 208 | + szSz, | |
| 202 | 209 | sqlite3_column_int64(pStmt, 1), |
| 203 | 210 | sqlite3_column_text(pStmt, 2), |
| 204 | 211 | zName); |
| 205 | 212 | } |
| 206 | 213 | sqlite3_finalize(pStmt); |
| 207 | 214 |
| --- 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 |