Updated
Showing
4 changed files
with
109 additions
and
72 deletions
1 | 2003-03-10 Sergey Poznyakoff | ||
2 | |||
3 | * comsat/comsat.c: Use ngettext. | ||
4 | * mh/sortm.c: New file. Source for the sortm utility. | ||
5 | * mh/.cvsignore: Added sortm | ||
6 | * mh/Makefile.am: Likewise | ||
7 | * mh/README: Updated | ||
8 | * mh/TODO: Updated | ||
9 | * mh/mh_getopt.h: Updated | ||
10 | |||
1 | 2003-03-03 Sergey Poznyakoff | 11 | 2003-03-03 Sergey Poznyakoff |
2 | 12 | ||
3 | * configure.ac: New option --with-included-argp | 13 | * configure.ac: New option --with-included-argp | ... | ... |
... | @@ -158,6 +158,25 @@ compatibility only. | ... | @@ -158,6 +158,25 @@ compatibility only. |
158 | 158 | ||
159 | ** Message specs and folder names may be interspersed. | 159 | ** Message specs and folder names may be interspersed. |
160 | 160 | ||
161 | * sortm | ||
162 | |||
163 | ** New option --numfield specifies numeric comparison for the given field. | ||
164 | |||
165 | ** Any number of --datefield, --textfield and --numfield options may be | ||
166 | given, thus allowing to build sort criteria of arbitrary complexity. | ||
167 | |||
168 | ** The order of --.*field arguments sets the ordering priority. This | ||
169 | differs from the behaviour of the standard sortm, which always orders | ||
170 | datefield-major, textfield-minor. | ||
171 | |||
172 | ** Apart from sorting the mailfolder the following actions may be | ||
173 | specified: | ||
174 | --list list the ordered messages using a format string given | ||
175 | by --form or --format option. | ||
176 | --dry-run do not actually sort messages, rather print what would | ||
177 | have been done. This is useful for debugging purposes. | ||
178 | |||
179 | |||
161 | 180 | ||
162 | Local variables: | 181 | Local variables: |
163 | mode: outline | 182 | mode: outline | ... | ... |
... | @@ -40,7 +40,7 @@ State Nice Utility Comments | ... | @@ -40,7 +40,7 @@ State Nice Utility Comments |
40 | - 10 whom | 40 | - 10 whom |
41 | + 10 mhpath | 41 | + 10 mhpath |
42 | + 10 whatnow | 42 | + 10 whatnow |
43 | - 20 sortm | 43 | + 20 sortm |
44 | 44 | ||
45 | Utilities In Alphabetical Order | 45 | Utilities In Alphabetical Order |
46 | =============================== | 46 | =============================== | ... | ... |
... | @@ -63,77 +63,85 @@ struct mh_argp_data | ... | @@ -63,77 +63,85 @@ struct mh_argp_data |
63 | #define ARG_DRAFT 279 | 63 | #define ARG_DRAFT 279 |
64 | #define ARG_DRAFTFOLDER 280 | 64 | #define ARG_DRAFTFOLDER 280 |
65 | #define ARG_DRAFTMESSAGE 281 | 65 | #define ARG_DRAFTMESSAGE 281 |
66 | #define ARG_DUMP 282 | 66 | #define ARG_DRY_RUN 282 |
67 | #define ARG_EDITOR 283 | 67 | #define ARG_DUMP 283 |
68 | #define ARG_FAST 284 | 68 | #define ARG_EDITOR 284 |
69 | #define ARG_FCC 285 | 69 | #define ARG_FAST 285 |
70 | #define ARG_FILE 286 | 70 | #define ARG_FCC 286 |
71 | #define ARG_FILTER 287 | 71 | #define ARG_FILE 287 |
72 | #define ARG_FOLDER 288 | 72 | #define ARG_FILTER 288 |
73 | #define ARG_FORM 289 | 73 | #define ARG_FOLDER 289 |
74 | #define ARG_FORMAT 290 | 74 | #define ARG_FORM 290 |
75 | #define ARG_FORWARD 291 | 75 | #define ARG_FORMAT 291 |
76 | #define ARG_FROM 292 | 76 | #define ARG_FORWARD 292 |
77 | #define ARG_HEADER 293 | 77 | #define ARG_FROM 293 |
78 | #define ARG_INPLACE 294 | 78 | #define ARG_HEADER 294 |
79 | #define ARG_INTERACTIVE 295 | 79 | #define ARG_INPLACE 295 |
80 | #define ARG_LBRACE 296 | 80 | #define ARG_INTERACTIVE 296 |
81 | #define ARG_LENGTH 297 | 81 | #define ARG_LBRACE 297 |
82 | #define ARG_LICENSE 298 | 82 | #define ARG_LENGTH 298 |
83 | #define ARG_LINK 299 | 83 | #define ARG_LICENSE 299 |
84 | #define ARG_LIST 300 | 84 | #define ARG_LINK 300 |
85 | #define ARG_MIME 301 | 85 | #define ARG_LIMIT 301 |
86 | #define ARG_MOREPROC 302 | 86 | #define ARG_LIST 302 |
87 | #define ARG_MSGID 303 | 87 | #define ARG_MIME 303 |
88 | #define ARG_NOAUDIT 304 | 88 | #define ARG_MOREPROC 304 |
89 | #define ARG_NOBELL 305 | 89 | #define ARG_MSGID 305 |
90 | #define ARG_NOCC 306 | 90 | #define ARG_NOAUDIT 306 |
91 | #define ARG_NOCLEAR 307 | 91 | #define ARG_NOBELL 307 |
92 | #define ARG_NODATE 308 | 92 | #define ARG_NOCC 308 |
93 | #define ARG_NODRAFTFOLDER 309 | 93 | #define ARG_NOCLEAR 309 |
94 | #define ARG_NOEDIT 310 | 94 | #define ARG_NODATE 310 |
95 | #define ARG_NOFILTER 311 | 95 | #define ARG_NODATEFIELD 311 |
96 | #define ARG_NOFORMAT 312 | 96 | #define ARG_NODRAFTFOLDER 312 |
97 | #define ARG_NOFORWARD 313 | 97 | #define ARG_NOEDIT 313 |
98 | #define ARG_NOINPLACE 314 | 98 | #define ARG_NOFILTER 314 |
99 | #define ARG_NOLIST 315 | 99 | #define ARG_NOFORMAT 315 |
100 | #define ARG_NOMIME 316 | 100 | #define ARG_NOFORWARD 316 |
101 | #define ARG_NOMOREPROC 317 | 101 | #define ARG_NOINPLACE 317 |
102 | #define ARG_NOMSGID 318 | 102 | #define ARG_NOLIMIT 318 |
103 | #define ARG_NOPUBLIC 319 | 103 | #define ARG_NOLIST 319 |
104 | #define ARG_NOPUSH 320 | 104 | #define ARG_NOMIME 320 |
105 | #define ARG_NOT 321 | 105 | #define ARG_NOMOREPROC 321 |
106 | #define ARG_NOVERBOSE 322 | 106 | #define ARG_NOMSGID 322 |
107 | #define ARG_NOWATCH 323 | 107 | #define ARG_NOPUBLIC 323 |
108 | #define ARG_NOWHATNOWPROC 324 | 108 | #define ARG_NOPUSH 324 |
109 | #define ARG_NOZERO 325 | 109 | #define ARG_NOT 325 |
110 | #define ARG_OR 326 | 110 | #define ARG_NOTEXTFIELD 326 |
111 | #define ARG_PATTERN 327 | 111 | #define ARG_NOVERBOSE 327 |
112 | #define ARG_POP 328 | 112 | #define ARG_NOWATCH 328 |
113 | #define ARG_PRESERVE 329 | 113 | #define ARG_NOWHATNOWPROC 329 |
114 | #define ARG_PRINT 330 | 114 | #define ARG_NOZERO 330 |
115 | #define ARG_PROMPT 331 | 115 | #define ARG_NUMFIELD 331 |
116 | #define ARG_PUBLIC 332 | 116 | #define ARG_OR 332 |
117 | #define ARG_PUSH 333 | 117 | #define ARG_PATTERN 333 |
118 | #define ARG_QUERY 334 | 118 | #define ARG_POP 334 |
119 | #define ARG_QUIET 335 | 119 | #define ARG_PRESERVE 335 |
120 | #define ARG_RBRACE 336 | 120 | #define ARG_PRINT 336 |
121 | #define ARG_RECURSIVE 337 | 121 | #define ARG_PROMPT 337 |
122 | #define ARG_REVERSE 338 | 122 | #define ARG_PUBLIC 338 |
123 | #define ARG_SEQUENCE 339 | 123 | #define ARG_PUSH 339 |
124 | #define ARG_SOURCE 340 | 124 | #define ARG_QUERY 340 |
125 | #define ARG_SPLIT 341 | 125 | #define ARG_QUIET 341 |
126 | #define ARG_SUBJECT 342 | 126 | #define ARG_RBRACE 342 |
127 | #define ARG_TEXT 343 | 127 | #define ARG_RECURSIVE 343 |
128 | #define ARG_TO 344 | 128 | #define ARG_REORDER 344 |
129 | #define ARG_TOTAL 345 | 129 | #define ARG_REVERSE 345 |
130 | #define ARG_TRUNCATE 346 | 130 | #define ARG_SEQUENCE 346 |
131 | #define ARG_USE 347 | 131 | #define ARG_SOURCE 347 |
132 | #define ARG_VERBOSE 348 | 132 | #define ARG_SPLIT 348 |
133 | #define ARG_WATCH 349 | 133 | #define ARG_SUBJECT 349 |
134 | #define ARG_WHATNOWPROC 350 | 134 | #define ARG_TEXT 350 |
135 | #define ARG_WIDTH 351 | 135 | #define ARG_TEXTFIELD 351 |
136 | #define ARG_ZERO 352 | 136 | #define ARG_TO 352 |
137 | #define ARG_TOTAL 353 | ||
138 | #define ARG_TRUNCATE 354 | ||
139 | #define ARG_USE 355 | ||
140 | #define ARG_VERBOSE 356 | ||
141 | #define ARG_WATCH 357 | ||
142 | #define ARG_WHATNOWPROC 358 | ||
143 | #define ARG_WIDTH 359 | ||
144 | #define ARG_ZERO 360 | ||
137 | 145 | ||
138 | void mh_argv_preproc __P((int argc, char **argv, struct mh_argp_data *data)); | 146 | void mh_argv_preproc __P((int argc, char **argv, struct mh_argp_data *data)); |
139 | int mh_getopt __P((int argc, char **argv, struct mh_option *mh_opt, | 147 | int mh_getopt __P((int argc, char **argv, struct mh_option *mh_opt, | ... | ... |
-
Please register or sign in to post a comment