Whamcloud - gitweb
Fix gcc -Wall warnings, especially on 64-bit systems
[tools/e2fsprogs.git] / debugfs / ChangeLog
1 2007-05-22  Theodore Tso  <tytso@mit.edu>
2
3         * util.c: #define _XOPEN_SOURCE so we get strptime() prototype
4
5         * htree.c (search_dir_block), ls.c (list_dir_proc), debugfs.c
6                 (finish_range, dump_blocks, internal_dump_inode): Fix gcc
7                 -Wall warnings on 64-bit systems.
8
9         * debugfs.c (internal_dump_inode_extra): Mark prefix and inode_num
10                 parameters as unused.
11
12 2007-05-08  Theodore Tso  <tytso@mit.edu>
13
14         * debugfs.c (internal_dump_inode), ls.c (list_dir_proc), 
15                 lsdel.c (do_lsdel): Use inode_uid() and inode_gid() so
16                 that the high bits of the uid/gid are displayed.
17
18 2007-04-19  Theodore Tso  <tytso@mit.edu>
19
20         * set_fields.c: Add the i_version field to the set_inode_field
21                 command.
22
23 2007-04-13  Theodore Tso  <tytso@mit.edu>
24
25         * set_fields.c (do_set_block_group_descriptor), debug_cmds.ct,
26                 debugfs.8.in: Added set_block_group command:
27
28 2007-04-10  Theodore Tso  <tytso@mit.edu>
29
30         * util.c (string_to_time): Fix bug in date parser so that integer
31                 time values can be used.
32
33 2007-04-02  Theodore Tso  <tytso@mit.edu>
34
35         * dump.c (do_rdump): Use O_LARGEFILE when creating files.  Add a
36                 #define of GNU_SOURCE so that the dump and rdump commands
37                 work with files > 2GB.  (Addresses Debian Bug: #412614)
38
39 2007-03-29  Theodore Tso  <tytso@mit.edu>
40
41         * debugfs.c (do_print_working_directory): Handle the case if
42                 ext2fs_get_pathname returns NULL for the pathname.
43
44         * htree.c (do_htree_dump): Fix coverity use before assignment
45                 warning.  (long_opt isn't being used for anything right
46                 now, so this is a no-op)
47
48 2007-03-23  Theodore Tso  <tytso@mit.edu>
49
50         * logdump.c (do_logdump): Fix file handle leak if logdump fails
51                 with an error.
52
53 2007-03-21  Theodore Tso  <tytso@mit.edu>
54
55         * icheck.c (do_icheck): Fix memory leak and clean up error
56                 handling paths.
57
58         * htree.c (htree_dump_int_block): Fix memory leak on error paths.
59
60         * dump.c (rdump_dirent), htree.c (htree_dump_leaf_node), 
61                 ls.c (list_dir_proc): Add an extra byte to EXT2_NAME_LEN
62                 to avoid the possibility of an array overrun if the
63                 filename is exactly EXT2_NAME_LEN in size.
64
65 2007-03-07  Theodore Tso  <tytso@mit.edu>
66
67         * debugfs.c (do_lcd): Allow the lcd command when debugfs does not
68                 currently have a filesystem open.  
69                 (Addresses LTC Bugzilla #27513)
70
71 2007-01-28  Theodore Tso  <tytso@mit.edu>
72
73         * unused.c: Fix bug so that the dump_unused command segfault if
74                 used without an open filesystem
75
76 2006-12-22  Theodore Tso  <tytso@mit.edu>
77
78         * debugfs.c (main): Use the new {add,remove}_error_table comerr
79                 interfaces instead of initialize_*_error_table.
80
81 2006-11-12  Theodore Tso  <tytso@mit.edu>
82
83         * debugfs.c (do_open_filesys, main): Open filesystems with the
84                 SOFTSUPP flag, to make easier to work on filesystem
85                 features that are still under development.
86
87 2006-11-11  Theodore Tso  <tytso@mit.edu>
88
89         * set_fields.c: Add the ability to use set_super_value to set the
90                 superblock flags field.
91
92         * htree.c (htree_dump_leaf_node): Check the superblock flags to
93                 determine whether to use the signed or unsigned version of
94                 the hash should be used.
95
96 2006-10-01  Theodore Tso  <tytso@mit.edu>
97
98         * Makefile.in (DEPLIBBLKID): Use DEPLIBBLKID not LIBBLKID to
99                 define the dependencies used by the blkid library.
100
101 2006-08-30  Eric Sandeen <esandeen@redhat.com>
102
103         * htree.c (htree_dump_int_node): Fix printf formats.
104
105 2006-08-29  Theodore Tso  <tytso@mit.edu>
106
107         * lsdel.c (do_lsdel): Fix core-dumping bug.  Don't depend on
108                 current_fs being non-NULL until after the call to
109                 common_args_process().  (Addresses Debian Bug: #378335)
110
111 2006-05-29  Theodore Tso  <tytso@mit.edu>
112
113         * util.c (reset_getopt): In order to support ancient Linux header
114                 files that don't define __GLIBC__ (but which were using
115                 glibc anyway), assume that any system that defines
116                 __linux__ should use the glibc method of resetting getopt().
117
118 2006-05-28  Theodore Tso  <tytso@mit.edu>
119
120         * unused.c (do_dump_unused): Use EXT2_MAX_BLOCK_SIZE instead of a
121                 hardcoded blocksize of 32768, since this will fail on a
122                 filesystem with a 64k blocksize.  (Addresses SourceForge
123                 bug #1424311)
124
125 2006-05-21  Theodore Tso  <tytso@mit.edu>
126
127         * set_fields.c (parse_time): Fix type warning problem with time_t
128
129 2006-05-08  Theodore Tso  <tytso@mit.edu>
130
131         * debugfs.c (do_show_super_stats): Print out the block group flags
132                 if they are set.
133
134 2006-04-27  Theodore Ts'o  <tytso@mit.edu>
135
136         * htree.c (do_htree_dump, do_dx_hash), ls.c (do_list_dir): Add
137                 missing default case in the getopt() while/switch loop so
138                 that we print a usage() statement when the user specified
139                 an illegal option.
140
141 2006-03-18  Theodore Ts'o  <tytso@mit.edu>
142
143         * debugfs.c, htree.c, unused.c: Change printf statements to use
144                 %u instead of %d when printing block numbers.
145
146         * debugfs.c (do_open_filesys), debugfs.8.in: Add the -e option to
147                 the open_filesystem command, which requests that the
148                 filesystem be opened in exclusive mode.
149
150 2006-03-08  Theodore Ts'o  <tytso@mit.edu>
151
152         * Fix bug in icheck which incorrectly reports the last valid inode
153                 number as the owner for an EA block.
154
155 2005-12-10  Theodore Ts'o  <tytso@mit.edu>
156
157         * debugfs.c, debugfs.h, logdump.c, ls.c: Clean up various gcc
158                 -Wall complaints.
159
160 2005-09-24  Theodore Ts'o  <tytso@mit.edu>
161
162         * set_fields.c (parse_time), util.c (string_to_time), debugfs.c
163                 (do_set_current_time): Generalize the time parsing code
164                 and move it to util.c:string_to_time().  Add new command,
165                 set_current_time, which sets the time used to set the
166                 filesystems's time fields.
167
168 2005-09-06  Theodore Ts'o  <tytso@mit.edu>
169
170         * set_fields.c: Fix set_inode_field so it can properly set the
171                 i_size field.  Thanks to James Nelson for pointing this
172                 out.
173
174 2005-07-04  Theodore Ts'o  <tytso@mit.edu>
175
176         * set_fields.c: Fix a bug which caused set_inode_field to silently
177                 fail when setting the following fields: frag, fsize,
178                 uid_high, gid_high, and author.
179
180 2006-06-30  Theodore Ts'o  <tytso@mit.edu>
181
182         * Release of E2fsprogs 1.38
183
184 2005-05-05  Theodore Ts'o  <tytso@mit.edu>
185
186         * debugfs.c (do_stat): Check to make sure a filesystem is open
187                 and abort if with an error if not, to prevent a seg fault
188                 in that case.
189
190 2005-03-21  Theodore Ts'o  <tytso@mit.edu>
191
192         * Release of E2fsprogs 1.37
193
194 2005-03-21  Theodore Ts'o  <tytso@mit.edu>
195
196         * debugfs.c (internal_dump_inode_extra): Print the size of
197                 the inode's extra fields.
198
199 2005-03-20  Theodore Ts'o  <tytso@mit.edu>
200
201         * util.c (debugfs_write_new_inode): New function
202
203         * debgufs.c (do_write, do_mknod): Call ext2fs_write_new_inode()
204                 instead of ext2fs_write_inode().
205
206         * debugfs.c (do_stat): Add support for dumping extended attributes
207                 which are stored in the inode body.
208
209         * util.c (debugfs_read_inode_full): new function
210
211 2006-02-05  Theodore Ts'o  <tytso@mit.edu>
212
213         * Release of E2fsprogs 1.36
214
215 2005-02-03  Theodore Ts'o  <tytso@mit.edu>
216
217         * set_fields.c: Define _XOPEN_SOURCE to be 500 to fix compilation
218                 problems on Solaris.
219
220 2005-01-20  Theodore Ts'o  <tytso@mit.edu>
221
222         * set_fields.c: Add support for the jnl_blocks[] for set_super_value
223
224 2005-01-19  Matthias Andree <matthias.andree@gmx.de>
225
226         * set_fields.c: Add _XOPEN_SOURCE #define on all but Solaris
227                 systems so that strptime() gets defined.
228                 (parse_bmap): Add missing return statement.
229
230 2005-01-07  Theodore Ts'o  <tytso@mit.edu>
231
232         * debug_cmds.ct: Make the official name of set_inode be
233                 set_inode_field, since it is more intuitive.
234
235         * set_fields.c (print_possible_fields): Document bmap[] in
236                 "set_inode_field -l" listing.  Change name of set_inode to
237                 set_inode_field in usage message.
238
239 2004-12-23  Theodore Ts'o  <tytso@mit.edu>
240
241         * set_fields.c: Add support for array indexes, which we use for
242                 the i_block[] array.  Also add the pseudo inode field
243                 bmap, which can be used for setting logical->physical
244                 mappings directly.
245
246 2004-12-21  Theodore Ts'o  <tytso@mit.edu>
247
248         * setfields.c: Renamed from setsuper.c
249                 Added support to set date/time fields.
250                 Added support for setting superblock values wtime, mtime,
251                         lastcheck, and mkfs_time as date/time fields.
252                 Added support for the set_inode command.
253         * debugfs.h, debug_cmds.ct, debugfs.8.in: Added set_inode command
254
255 2004-12-16  Theodore Ts'o  <tytso@mit.edu>
256
257         * setsuper.c: Add definitions for newer superblock fields:
258                 reserved_gdt_blocks, jnl_backup_type, default_mount_opts,
259                 first_meta_bg, and mkfs_time.
260
261 2004-12-14  Theodore Ts'o  <tytso@mit.edu>
262
263         * Makefile.in: Move strip command to install-strip target.
264                 Use Linux-kernel-style makefile output for "make install"
265
266         * Makefile.in (installdirs): Use $(MKINSTALLDIRS) macro
267
268 2004-11-30  Theodore Ts'o  <tytso@mit.edu>
269
270         * util.c (time_to_string): If the TZ environment variable is set
271                 to GMT, use gmtime() instead of localtime() or ctime() to
272                 force the use of GMT.  This is because the dietlibc
273                 doesn't honor the TZ environment variable.
274
275         * Makefile.in: Use Linux-kernel-style makefile output to make it
276                 easier to see errors/warnings.
277
278 2004-11-29  Theodore Ts'o  <tytso@mit.edu>
279
280         * debugfs.c (do_open_filesys): Fix obvious uninitialized variable
281                 buglet.
282
283 2004-11-19  Theodore Ts'o  <tytso@mit.edu>
284
285         * debugfs.c (kill_file_by_inode): Only iterate over the inode to
286                 release blocks if the inode has them; otherwise attempting
287                 to rm devices and fast symlinks will lead to errors.
288                 (Addresses Sourceforge Bug #954741 and #957244)
289
290 2004-07-28  Theodore Ts'o  <tytso@mit.edu>
291
292         * debugfs.c, debugfs.8.in: Add new option -d which allows the
293                 system administrator to specify data source of a
294                 filesystem being opened via an e2image file.
295
296 2004-04-11  Theodore Ts'o  <tytso@mit.edu>
297
298         * util.c (open_pager): Use DEBUGFS_PAGER in preference to PAGER
299                 (Addresses Debian Bug #239547)
300
301 2004-04-03  Theodore Ts'o  <tytso@mit.edu>
302
303         * Makefile.in: Update the modtime even if subst doesn't need to
304                 update the debugfs man page, to avoid always re-running
305                 subst, especially since there are no dependencies on the
306                 man page.
307
308 2004-03-20  Theodore Ts'o  <tytso@mit.edu>
309
310         * debugfs.c (make_link): Set the filetype information when
311                 creating a link.
312
313 2004-02-28  Theodore Ts'o  <tytso@mit.edu>
314
315         * Release of E2fsprogs 1.35
316
317 2004-02-23  Theodore Ts'o  <tytso@mit.edu>
318
319         * debugfs.c (internal_dump_inode): Display the major/minor device
320                 numbers for block/character devices.
321                 (do_mknod): Add support for new-style device numbers (where
322                 the major or minor number is greater than 255 and less
323                 than 65535).  (Addresses Sourceforge bug #865289)
324
325 2004-02-21  Theodore Ts'o  <tytso@mit.edu>
326
327         * debugfs.8.in: Fix the debugfs man page to reference the
328                 init_filesys command, instead of "initialize".  (Addresses
329                 Debian Bug #232406)
330
331 2004-02-14  Theodore Ts'o  <tytso@mit.edu>
332
333         * debugfs.c (internal_dump_inode): Correctly deal with symlinks
334                 that have extended attribute information.  (Addresses
335                 Debian Bug #232328)
336
337 2004-01-24  Theodore Ts'o  <tytso@mit.edu>
338
339         * debugfs.8.in: Document the PAGER and DEBUGFS_PAGER environment
340                 variables.
341
342         * util.c (open_pager): Use the "more" pager in preference to
343                 "less", since "less" doesn't work terribly well for
344                 debugfs's purpose.
345
346 2003-12-25  Theodore Ts'o  <tytso@mit.edu>
347
348         * util.c (open_pager): Try to use the DEBUGFS_PAGER environment
349                 variable first, and then fall back to the PAGER
350                 environment variable.  Finally, search for an appropriate
351                 pager executable.
352
353 2003-12-11  Theodore Ts'o  <tytso@thunk.org>
354
355         * debugfs.c (do_write, do_mkdir): If the directory is full,
356                 automatically call ext2fs_expand_dir() and then retry to
357                 add the link to the directory as a convenience to the
358                 user.  (Addresses Debian Bug: #217892)
359                 (do_mknod): Clean up expand_dir error handling.
360
361 2003-12-07  Theodore Ts'o  <tytso@mit.edu>
362
363         * debugfs.c (do_write): Mask off the file type bits, and OR in the
364                 regular file information.  (Addresses Debian Bug: #217456)
365
366         * util.c (open_pager): Search for the pager to use, starting with
367                 'pager', and then falling back to 'less' and then 'more'.
368                 (Addresses Debian Bug: #221977)
369
370         * debugfs.c, debugfs.h, dump.c, htree.c, icheck.c, logdump.c,
371                 ls.c, lsdel.c, ncheck.c, setsuper.c, unused.c: Fix gcc
372                 -Wall nitpicks.
373
374 2003-08-24  Theodore Ts'o  <tytso@mit.edu>
375
376         * debugfs.8.in: Adjust description line so that apropos
377                 "ext2" or "ext3" will find the man page.  (Addresses
378                 Debian Bug #206845)
379
380 2003-08-21  Theodore Ts'o  <tytso@mit.edu>
381
382         * debugfs.8.in: Fully document the logdump command in the debugfs
383                 man page.
384
385         * logdump.c (do_logdump): Add -s option which will use the journal
386                 inode information in the superblock.
387
388 2003-07-25  Theodore Ts'o  <tytso@mit.edu>
389
390         * Release of E2fsprogs 1.34
391
392 2003-07-06  Theodore Ts'o  <tytso@mit.edu>
393
394         * debugfs.c (do_imap): Fix gcc -Wall nitpicks (printf format types).
395
396 2003-05-21  Theodore Ts'o  <tytso@mit.edu>
397
398         * unused.c (do_dump_unused): Add new command which dumps the
399                 unused blocks.  (Initial implementation; currently only
400                 dumps the output to stdout.)
401
402 2003-05-13  root  <tytso@mit.edu>
403
404         * util.c (reset_getopt), debugfs.c (do_open_filesys,
405         do_show_super_stats), ls.c (do_list_dir), dump.c (do_dump),
406         htree.c (do_htree_dump, do_dx_hash), logdump.c (do_logdump):
407         Define and use a new function, reset_getopt(), which does whatever
408         is necessary to reset getopt() again.  This is different for
409         different implementations, so the portabilty issues are a bit of a
410         nightmare.  (Addresses Debian bug #192834)
411         
412 2003-05-05  Theodore Ts'o  <tytso@mit.edu>
413
414         * debugfs.c (do_imap), debugfs.h, debug_cmds.ct, debugfs.8.in:
415                 Added new command, imap, which prints the location of a
416                 specified inode in the inode table.
417
418 2003-04-21  Theodore Ts'o  <tytso@mit.edu>
419
420         * Release of E2fsprogs 1.33
421
422 2003-03-16  Theodore Ts'o  <tytso@mit.edu>
423
424         * Makefile.in (DLOPEN_LIB): Link in the libdl library if it is
425                 present on the system.
426
427         * debugfs.c (main): Call ss_get_readline() to attempt to pull in
428                 the readline library.
429
430 2003-03-06  Theodore Tso  <tytso@mit.edu>
431
432         * debugfs.c (do_open_filesys, do_show_super_stats), 
433         ls.c (do_list_dir), dump.c (do_dump), htree.c (do_htree_dump, 
434         do_dx_hash), logdump.c (do_logdump): Reset optind to 1 for better
435         compatibility with non-glibc implementations of getopt.
436
437 2003-03-01  Theodore Ts'o  <tytso@mit.edu>
438
439         * Makefile.in, logdump.c (do_logdump): Use the blkid functions to
440                 find the external journal device.
441
442 2003-01-21  Theodore Ts'o  <tytso@mit.edu>
443
444         * dump.c (do_dump): Open the output file with O_LARGEFILE so we
445                 can write files larger than 2GB.
446
447 2002-11-09  Theodore Ts'o  <tytso@mit.edu>
448
449         * Release of E2fsprogs 1.32
450
451 2002-11-08  Theodore Ts'o  <tytso@mit.edu>
452
453         * Release of E2fsprogs 1.31
454
455 2002-10-31  Theodore Ts'o  <tytso@mit.edu>
456
457         * Release of E2fsprogs 1.30
458
459 2002-10-31  Theodore Ts'o  <tytso@mit.edu>
460
461         * debugfs.c (do_write): Check to see if the filename exists before
462                 creating it, and give an error if so.  Addresses
463                 Sourceforge bug #478195.
464
465 2002-10-30  Theodore Ts'o  <tytso@mit.edu>
466
467         * Makefile.in (install): Search all compression extensions when
468                 deleting old man pages.
469
470 2002-10-13  Theodore Ts'o  <tytso@mit.edu>
471
472         * debugfs.h, htree.c, setsuper.c: Fix gcc -Wall nits.
473
474 2002-10-02  Theodore Y. Ts'o  <tytso@mit.edu>
475
476         * htree.c (htree_dump_leaf_node): Use ext2fs_read_dir_block2 so
477                 that the directory entries are appropriately byte-swapped.
478
479 2001-09-24  Theodore Tso  <tytso@mit.edu>
480
481         * Release of E2fsprogs 1.29
482
483 2002-09-22  root  <tytso@mit.edu>
484
485         * htree.c (htree_dump_int_node): Flag continuation hashes to make
486                 them easier to find.
487
488 2001-08-31  Theodore Tso  <tytso@thunk.org>
489
490         * Release of E2fsprogs 1.28
491
492 2002-08-23  Theodore Ts'o  <tytso@mit.edu>
493
494         * setsuper.c: Add support for the fields s_uuid, s_journal_uuid,
495                 s_hash_seed, s_def_hash_version.  Add routines for parsing
496                 UUID's and hash algorithm identifiers.
497
498 2002-08-16  Theodore Ts'o  <tytso@mit.edu>
499
500         * icheck.c (do_icheck): Check to see if the block is listed as
501                 part of the extended attribute block.
502
503 2002-07-21  Theodore Ts'o  <tytso@mit.edu>
504
505         * htree.c (do_htree_dump): Fix a bug where we were not cleanly
506                 closing the pager after errors, which would leave the
507                 tty in noecho mode.
508
509 2002-07-18  Theodore Ts'o  <tytso@mit.edu>
510
511         * htree.c (htree_dump_int_node): Add byte swapping code sot that
512                 the htree dump function works on a big-endian machine.
513
514 2002-07-15  Theodore Ts'o  <tytso@mit.edu>
515
516         * debugfs.c (do_show_super_stats): Calculate and print the number
517                 of directories on a filesystem --- because we can and
518                 because it can be useful.
519
520 2002-07-09  Theodore Ts'o  <tytso@mit.edu>
521
522         * debugfs.c (do_rmdir), debugfs.8.in: Implement the rmdir command.
523                 Addresses Debian bug #138003.
524
525 2002-06-26  Theodore Ts'o  <tytso@mit.edu>
526
527         * htree.c (do_dx_hash): Use new ext2fs_dirhash function signature.
528                 Add getopt support so user can specify the hash version.
529
530 2002-05-11    <tytso@snap.thunk.org>
531
532         * debug_cmds.ct, debugfs.c (do_bmap): Add new command "bmap" which
533                 calculates the logical->physical block mapping for an
534                 inode.
535
536         * debugfs.c (do_init_filsys, main), util.c
537                 (common_block_args_process): Fix bad calling parameter
538                 order when calling parse_ulong.  This broke the -b  and -s
539                 options to debugfs, as well as do_init, and the testb,
540                 setb, clearb functions.
541
542 2002-04-01    <tytso@snap.thunk.org>
543
544         * util.c (parse_ulong): Fix typo which cases parse_ulong to
545                 coredump if the err variable is filled in (for example, if
546                 the -b or -s options are passed to the debugfs's
547                 command-line invocation).
548
549 2002-03-11  Theodore Tso  <tytso@mit.edu>
550
551         * ls.c (list_dir_proc): Fix bug: ls -l fails to print the file
552                 type correctly if running on big-endian systems.
553
554         * htree.c (htree_dump_leaf_node): Use the ext2_dirhash function
555                 instead of a local static function.
556
557 2002-03-08  Theodore Tso  <tytso@mit.edu>
558
559         * Release of E2fsprogs 1.27
560
561 2002-03-07    <tytso@snap.thunk.org>
562
563         * ls.c (list_dir_proc): Fix typo in debugfs which was causing a
564                 compiler warning.
565
566 2002-03-05  Theodore Tso  <tytso@mit.edu>
567
568         * lsdel.c (do_lsdel): lsdel uses the pager to print out the list
569                 of potentially deleted inode.  Thanks to Jaroslav Drzik
570                 <jdrzik@host.sk> for suggesting this enhancement.
571
572         * debugfs.c (do_modify_inode): Fix bug which caused modify_inode
573                 to core dump if a fliesystem isn't open.  Thanks to 
574                 Jaroslav Drzik <jdrzik@host.sk> for finding and reporting
575                 the bug and his proposed fix.
576
577 2002-02-26  Theodore Tso  <tytso@mit.edu>
578
579         * ls.c (list_dir_proc): When listing the directory entry in long 
580                 format, include the file type of the directory entry in 
581                 parenthesis.
582
583 2002-02-25  Theodore Tso  <tytso@mit.edu>
584
585         * util.c (open_pager): If the PAGER environment is set to __none__
586                 then don't use a pager at all, and ship it all to stdout.
587
588         * Makefile.in, debug_cmds.ct, htree.c: Add new file htree.c, which
589                 implements the three new commands, htree_dump, dx_hash,
590                 and dirsearch.
591
592 2002-02-24  Theodore Tso  <tytso@mit.edu>
593
594         * Makefile.in (install): Remove any compressed man pages before
595                 installing the man pages.
596
597 2002-02-03  Theodore Tso  <tytso@thunk.org>
598
599         * Release of E2fsprogs 1.26
600
601 2002-01-03  Theodore Tso  <tytso@mit.edu>
602
603         * lsdel.c (do_lsdel): New optional argument which allows the user
604                 to only see the most recently deleted files.
605
606         * debugfs.c (do_undel, do_testb, do_freeb, do_setb, do_ffb): Add
607                 new command, undelete, which automates undeleting a
608                 deleted inode and linking it back to a directory.  Add a
609                 count argument to the testb, freeb, setb, and ffb commands.
610
611         * ls.c (list_dir_proc, do_list_dir): Add support for -d option
612                 which lists deleted directory entries.
613
614         * debug_cmds.ct: Add new command, undelete.
615
616         * dump.c, icheck.c, logdump.c, ls.c, lsdel.c, setsuper.c,
617                 debugfs.c: Use new utility functions which factor out
618                 commonly used code.
619
620         * util.c (debugfs_read_inode, debugfs_write_inode,
621                 common_block_args_process, common_inode_args_process,
622                 common_args_process, strtoblk, parse_ulong): New
623                 functions which factor out commonly used code into
624                 subroutines for ease of maintenance and to make the
625                 executable size smaller.
626
627 2001-12-23  Theodore Tso  <tytso@mit.edu>
628
629         * Makefile.in, jfs_user.h: Move linux/jbd.h to
630                 ext2fs/kernel-jbd.h, to avoid using the system header
631                 file version of hbd.h when using diet glibc (since it
632                 forcibly adds /usr/include to the beginning of the
633                 include search path.)
634
635 2001-12-22  Theodore Tso  <tytso@mit.edu>
636
637         * debugfs.c (kill_file_by_inode, release_blocks_proc): Update the
638                 group descriptor free block and inode counts when deleting
639                 or killing a file.
640
641 2001-12-16  Theodore Tso  <tytso@mit.edu>
642
643         * setsuper.c (print_possible_fields), 
644                 logdump.c (dump_journal): Fix gcc -Wall nits
645
646         * Makefile.in, jfs_user.h: linux/jfs.h has been renamed to
647                 linux/jbd.h
648
649 2001-12-02  Theodore Tso  <tytso@mit.edu>
650
651         * util.c (close_pager): Use pclose() instead of fclose() when
652                 closing the pager stream.
653
654 2001-11-30  Theodore Tso  <tytso@mit.edu>
655
656         * debugfs.c (finish_range, dump_blocks): Fixed bug in Andreas's >
657                 2GB support changes: you need to use %lld when printf'ing
658                 an long long variable.
659
660 2001-11-24  Theodore Tso  <tytso@mit.edu>
661
662         * debugfs.8.in: Update manual page to document the set_super_value
663                 and logdump commands, and move the "specifying files"
664                 section closer to the beginning of the man page so people
665                 won't miss it.
666
667         * setsuper.c (print_possible_fields): "set_super_value -l" now
668                 prints out the list of valid superblock fields which the
669                 ssv command can set.
670
671 2001-09-20  Theodore Tso  <tytso@thunk.org>
672
673         * Release of E2fsprogs 1.25
674
675 2001-09-02  Theodore Tso  <tytso@thunk.org>
676
677         * Release of E2fsprogs 1.24a
678
679 2001-08-30  Theodore Tso  <tytso@thunk.org>
680
681         * Release of E2fsprogs 1.24
682
683 2001-08-27  Theodore Tso  <tytso@valinux.com>
684
685         * debugfs.c (main): Remove EXT2FS_VERSION from the version
686                 display, since it only confuses people.
687
688 2001-08-15  Theodore Tso  <tytso@valinux.com>
689
690         * Release of E2fsprogs 1.23
691
692 2001-08-12  Theodore Tso  <tytso@valinux.com>
693
694         * logdump.c (do_logdump, dump_journal): Add support for dumping
695                 external journals.
696
697 2001-06-23  Theodore Tso  <tytso@valinux.com>
698
699         * Release of E2fsprogs 1.22
700
701 2001-06-15  Theodore Tso  <tytso@valinux.com>
702
703         * Release of E2fsprogs 1.21
704
705 2001-06-13  Theodore Tso  <tytso@valinux.com>
706
707         * setsuper.c: Add s_lastcheck field to the fields which can be
708                 modified using set_super_value.  (Suggested by Andreas
709                 Dilger)
710
711 2001-06-03  Theodore Tso  <tytso@valinux.com>
712
713         * debugfs.c (copy_file): Fixed signed vs unsigned bug which causes
714                 read errors to not be noticed.
715
716 2001-06-01  Theodore Tso  <tytso@valinux.com>
717
718         * Makefile.in: Move include/asm/types.h.in to 
719                 lib/ext2fs/ext2_types.h.in.
720
721         * debugfs.c, debugfs.h, logdump.c: Fix various gcc -Wall nitpicks.
722
723         * logdump.c (read_journal_block): Replace pread with lseek/read
724                 combination.
725
726 2001-05-25  Theodore Tso  <tytso@valinux.com>
727
728         * Release of E2fsprogs 1.20
729
730 2001-05-14  Theodore Tso  <tytso@valinux.com>
731
732         * debugfs.h: Change location of ext2_fs.h to be ext2fs/ext2_fs.h
733
734 2001-05-12  Theodore Tso  <tytso@valinux.com>
735
736         * debugfs.c (print_features): Use fputs instead of printf to
737                 output using the passed-in FILE *.
738
739 2001-05-09  Theodore Tso  <tytso@valinux.com>
740
741         * debugfs.c (do_write, do_mknod): Set the file type information
742                 when creating the inode.
743
744 2001-05-03  Theodore Tso  <tytso@valinux.com>
745
746         * debugfs.c (do_open_filesys, main): Add -i option which will
747                 allow debugfs to examine ext2 image files.
748
749 2001-03-29  Theodore Tso  <tytso@valinux.com>
750
751         * debugfs.c (dump_blocks, dump_inode, internal_dump_inode): Add
752                 internal_dump_inode() interface for the logdump command.
753
754         * logdump.c: Imported code from Stephen Tweedie to dump the ext3
755                 journal.
756
757 2001-03-18  Theodore Tso  <tytso@valinux.com>
758
759         * debugfs.c (do_write, do_mknod): Remove extra (useless) call to
760                 ext2fs_write_inode.
761
762 2001-01-12  Theodore Ts'o  <tytso@valinux.com>
763
764         * setsuper.c: Cleaned up some random whitespace problems.
765
766         * debugfs.h,  debugfs.c  (do_show_super_stats): Use  full words
767                 instead of pluralism hack  to make I18N conversion easier.
768                 Clean up gcc -Wall complaints.
769
770 2001-01-11    <tytso@snap.thunk.org>
771
772         * debugfs.c, debugfs.h, dump.c, icheck.c, ls.c, lsdel.c, ncheck.c,
773                 setsuper.c, util.c: Change ino_t to ext2_ino_t.  Fix a few
774                 minor gcc-wall complaints while we're at it.
775
776 2001-01-01    <tytso@snap.thunk.org>
777
778         * debugfs.c Replace use of struct ext2fs_sb with struct
779                 ext2_super_block.
780
781 2000-12-30    <tytso@snap.thunk.org>
782
783         * dump.c (fix_perms): Fix bug for systems which don't have fchown;
784                 was incorrectly using chmod instead of chown.
785
786         * setsuper.c (find_field): Strip the s_prefix if given for ssv
787                 fields.  Remove hard-coded s_ from inode_size
788                 field.  (Suggested by Andreas Dilger)
789
790         * debugfs.c (do_modify_inode): Add the ability to set the inode
791                 generation number.  (Suggested by Andreas Dilger)
792
793 2000-08-23    <tytso@valinux.com>
794
795         * util.c (string_to_inode): Use strtoul instead of atoi, so that
796                 hex inode numbers will be accepted.
797
798 2000-08-19    <tytso@valinux.com>
799
800         * util.c (open_pager): Set SIGPIPE to be ignored, so that quitting
801                 out of the pager doesn't blow away debugfs.
802
803 2000-08-14    <tytso@valinux.com>
804
805         * debugfs.c (do_show_super_stats): Use list_super2() instead of
806                 using explicit printf statements.  (We get a more complete
807                 printout this way.)
808
809         * util.c (open_pager): If the PAGER environment variable is not
810                 set, default to using "more".
811
812         * setsuper.c: New function which implements the set_super_value
813                 command.  Allows the user to set arbitrary superblock
814                 fields.
815
816         * debugfs.c (dump_inode): Cap the length when printing a fast
817                 symbolic link to inode.i_size.
818                 (list_blocks_proc): Print block ranges (4510-4533) to make
819                 the stat output easier to read.
820
821 2000-06-27  Andreas Dilger <adilger@turbolabs.com>
822
823         * debugfs.c (list_blocks_proc): show relative inode block numbers
824                 and/or indirect block status
825
826 2000-07-13    <tytso@valinux.com>
827
828         * Release of E2fsprogs 1.19
829
830 2000-07-05  Theodore Ts'o  <tytso@valinux.com>
831
832         * debugfs.c (dump_inode): Make the generation field be printed as
833                 an unsigned integer.
834
835 2000-07-04    <tytso@snap.thunk.org>
836
837         * Makefile.in: Use _SS_DIR_OVERRIDE to make sure we get the
838                 mk_cmds support files from the source tree.
839
840 2000-06-09    <tytso@snap.thunk.org>
841
842         * lsdel.c (do_lsdel): Handle bad bad blocks in inode table.
843
844 2000-05-27  Theodore Ts'o  <tytso@valinux.com>
845
846         * debugfs.c (do_testb, do_testi): Call check_fs_bitmaps to avoid
847                 coredumping if the bitmaps aren't loaded.
848
849         * util.c (check_fs_bitmaps): New function which checks whether or
850                 not the bitmaps are loaded.
851
852 2000-05-23  Aaron Crane  <aaronc@pobox.com>
853
854         * debugfs.8.in: Documented new behaviour.
855
856         * ls.c (ls_l_file): Fix Y2K bug -- was printing 22-May-100 for
857                 recent files.  Switched to 4-digit years.
858
859         * dump.c, debug_cmds.ct (do_rdump): Add new debugfs command
860                 "rdump", which recursively dumps a directory and its
861                 contents.
862                 (fix_perms): New function.  Break permission-fixing
863                 code out of dump_file() so it can be called by rdump
864                 code as well.
865                 (dump_file): Call fix_perms().
866
867         * debugfs.c, debug_cmds.ct (do_lcd): Add new debugfs command
868                 "lcd", which changes the cwd on the native filesystem.
869
870         * debugfs.c (open_filesystem): Extra args for superblock,
871                 blocksize, and catastrophic mode.  Changed callers.
872                 (do_open_filesys, main): Accept new -b, -s, -c options
873                 for open_filesystem.
874
875 2000-02-02  Theodore Ts'o  <tytso@valinux.com>
876
877         * debugfs.c (dump_inode): Remove #ifdef for i_version
878                 vs. i_generation since we know it will always be
879                 i_generation now.
880
881 2000-01-18  Theodore Ts'o  <tytso@valinux.com>
882
883         * debugfs.c (main): Use return instead of exit at the end of main
884                 to avoid some compiler warnings.
885
886         * Makefile.in: Since LIBUUID can sometimes include
887                 "-lsocket" we need a separate DEPLIBUUID that can be used
888                 in Makefile's dependency rules.
889
890 1999-11-19    <tytso@valinux.com>
891
892         * Makefile.in (distclean): Remove TAGS and Makefile.in.old from
893                 the source directory.
894
895 1999-11-10    <tytso@valinux.com>
896
897         * Release of E2fsprogs 1.18
898
899 1999-11-08    <tytso@valinux.com>
900
901         * icheck.c (do_icheck): 
902         * ncheck.c (do_ncheck): If ext2fs_open_inode_scan() returns 
903                 EXT2_ET_BAD_BLOCK_IN_INODE_TABLE loop to skip over the bad
904                 blocks in the inode table.
905
906 1999-10-26    <tytso@valinux.com>
907
908         * Release of E2fsprogs 1.17
909
910 1999-10-26    <tytso@valinux.com>
911
912         * debugfs.h: Add declaration for do_features()
913
914         * debugfs.c: Add #incldue of e2p.h to fix gcc warnings.
915
916 1999-10-25    <tytso@valinux.com>
917
918         * debugfs.c (do_dirty_filesys): Make the "dirty" command clear the
919                 valid bit on the superblock.  (And with a -clean option to
920                 set the valid bit.)  Originally it was used just to set
921                 the "needs to be written" bit in the in-core version of
922                 the fs structure.
923
924 1999-10-22    <tytso@valinux.com>
925
926         * Release of E2fsprogs 1.16
927
928 1999-09-07    <tytso@rsts-11.mit.edu>
929
930         * debugfs.c, debug_cmds.ct: Add new debugfs command "feature"
931                 which allows the user to set or clear filesystme features.
932                 Add the -f (force) option to the open command.  Add the 
933                 -h (superblock header only) option to the stats command.
934
935 1999-07-30    <tytso@rsts-11.mit.edu>
936
937         * debugfs.c (dump_inode): Fix debugfs message so it is the same
938                 for when compiled under either Linux 2.2 or 2.3.  This
939                 allows for the f_swapfs regression test suite to work
940                 regardless of which OS e2fsprogs was compiled on.
941
942 1999-07-18  Theodore Ts'o  <tytso@rsts-11.mit.edu>
943
944         * Release of E2fsprogs 1.15
945
946 1999-06-23    <tytso@valinux.com>
947
948         * debugfs.c (dump_inode): Add compatibility for Linux 2.3 kernels
949                 that use i_generation instead of i_version.  Patch
950                 supplied by Jon Bright <sircus@sircus.demon.co.uk>.
951
952 1999-02-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>
953
954         * icheck.c (do_icheck): Check to make sure the inode has valid
955                 blocks before iterating over that inode's blocks.
956
957 1999-01-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>
958
959         * Release of E2fsprogs 1.14
960
961 1998-12-15  Theodore Ts'o  <tytso@rsts-11.mit.edu>
962
963         * Release of E2fsprogs 1.13
964
965 1998-12-03  Theodore Ts'o  <tytso@rsts-11.mit.edu>
966
967         * Makefile.in: Updated dependencies.
968
969 1998-07-31  Theodore Ts'o  <tytso@rsts-11.mit.edu>
970
971         * debugfs.c (do_stat, do_clri): Fix bug where debugfs wasn't
972                 displaying the error message if ext2fs_read_inode() failed.
973                 (do_rm): Fix similar problem for call to ext2fs_namei().
974         
975 1998-07-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>
976
977         * Release of E2fsprogs 1.12
978
979 1998-06-27  Theodore Ts'o  <tytso@rsts-11.mit.edu>
980
981         * debugfs.c: Add a -V option which displays the current version.
982
983 1998-03-31  Theodore Ts'o  <tytso@rsts-11.mit.edu>
984
985         * Makefile.in: Change to use new installation directory variables
986                 convention.  Fix installdirs and uninstall rules to reflect
987                 the fact that debugfs has been installed in the root
988                 filesystem.  Fix uninstall rules to take $(DESTDIR) into
989                 account.
990
991 1998-03-29  Theodore Ts'o  <tytso@rsts-11.mit.edu>
992
993         * debugfs.h: Add declaration for do_dirty_filsys() to prevent
994                 -Wall warnings.
995
996         * debugfs.c (copy_file): 
997         * dump.c (dump_file): Fix -Wall warning caused by
998                 signed/unsigned mismatch. 
999
1000 1998-03-23  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1001
1002         * debugfs.c, ls.c, lsdel.c: Add support for large files.  (The
1003                 high 32 bits share space with the i_dir_acl field.)
1004
1005 Sun Mar  8 22:53:04 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1006
1007         * ls.c (list_dir_proc): Mask off high 8 bits from
1008                 dirent->name_len.
1009
1010 Mon Dec  1 13:21:09 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1011
1012         * Makefile.in: Install debugfs in /sbin, instead of /usr/sbin.
1013
1014 Sat Oct 25 18:35:30 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1015
1016         * debugfs.c (copy_file), dump.c (dump_file): Change to use the new
1017                 fileio primitives in libext2.
1018
1019 Fri Oct 24 23:47:43 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1020
1021         * debugfs.c (main, do_open_filesys): 
1022         * dump.c (do_dump): Make the variable which getopt returns into be
1023                 an int, so that it won't lose on platforms where char is
1024                 unsigned. 
1025
1026 Tue Oct 14 21:50:24 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1027
1028         * debugfs.c (main): When printing a usage message, have main
1029                 return 1 (instead of not specifying a return value, bad!)
1030
1031 Mon Sep 15 22:03:36 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1032
1033         * debugfs.c (main): Fix declaration of main so that it returns an int.
1034
1035 Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1036
1037         * Release of E2fsprogs 1.11
1038
1039 Thu May  8 23:05:40 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1040
1041         * debugfs.8.in: Fix minor typos and grammer oops found by Bill
1042                 Hawes (whawes@star.net).
1043
1044 Thu Apr 24 12:16:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>
1045
1046         * Release of E2fsprogs version 1.10
1047
1048 Thu Apr 17 12:23:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1049
1050         * Release of E2fsprogs version 1.09
1051
1052 Fri Apr 11 18:56:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1053
1054         * Release of E2fsprogs version 1.08
1055
1056 Thu Apr 10 14:36:05 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1057
1058         * ls.c: New file which implements the ls command.  Added the -l
1059                 option. 
1060
1061 Wed Mar 12 13:32:05 1997  Theodore Y. Ts'o  <tytso@mit.edu>
1062
1063         * Release of E2fsprogs version 1.07
1064
1065 Wed Jan  1 23:53:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1066
1067         * lsdel.c (do_lsdel): Use time_to_string() instead of ctime().
1068
1069 Tue Oct  8 02:02:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1070
1071         * Release of E2fsprogs version 1.06
1072
1073 Thu Sep 12 15:23:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1074
1075         * Release of E2fsprogs version 1.05
1076
1077 Mon Sep  9 23:05:11 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1078
1079         * debugfs.c (unlink_file_by_name): If unlinking a file with a
1080                 directory path, correctly replace the slash with a NULL.
1081                 (do_show_debugfs_params): Don't try to print the open mode
1082                 if there's no filesystem opened (since that will cause a
1083                 core dump).
1084                 (main): Fix usage string; the -w and device elements are
1085                 independently optional.
1086
1087 Tu Sep  3 15:09:39 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1088
1089         * debugfs.c (main): Added -f option to debugfs, which takes a
1090                 command file of debugfs commands and executes them.
1091
1092 Sat Aug 31 01:18:43 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1093
1094         * debugfs.8.in: Heavily edited and improved manual page.
1095
1096         * dump.c (dump_file): Improve the write function for writing out
1097                 the file, so that it is limited to the actual size of the
1098                 file, instead of outputing the nulls following the EOF.
1099                 Make sure dump_file does the right thing for files with holes.
1100                 (do_dump): Add support for the -p option to the dump
1101                 command, which attempts to preserve the owner and
1102                 permissions field.
1103
1104 Fri Aug 30 14:56:59 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1105
1106         * debugfs.c (main): Add -R option to debugfs, which allows it to
1107                 take a single debugfs command on the command line.
1108
1109 Fri Aug  9 09:03:31 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1110
1111         * debugfs.c (do_open_filesys): Set optind to 0 to reset getopt(),
1112                 to be complete correct.
1113                 (do_show_super_stats): Print OS type, volume label, last
1114                 mounted directory, and UUID.
1115                 (dump_inode): Print the fragment information in a
1116                 filesystem independent way.
1117                 (do_modify_inode): Modify the fragement information in a
1118                 filesystem independent way.
1119
1120 Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1121
1122         * Release of E2fsprogs version 1.04
1123
1124 Wed May 3 20:41:26 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>
1125
1126         * debugfs.c (dump_inode): Correctly print the translator on the hurd.
1127                (do_modify_inode): Modify the translator block on the hurd.
1128
1129 Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>
1130
1131         * Release of E2fsprogs version 1.03
1132
1133 Wed Jan 31 11:06:08 1996    <tytso@rsts-11.mit.edu>
1134
1135         * Release of E2fsprogs version 1.02
1136
1137 Fri Dec  1 22:42:31 1995    <tytso@rsts-11.mit.edu>
1138
1139         * Makefile.in (LIBS): Rearrange the order of the libraries to be
1140                 linked, so that -lext2fs is before -lcom_err.
1141
1142 Thu Oct 26 12:05:06 1995    <tytso@rsts-11.mit.edu>
1143
1144         * Makefile.in (install): Strip programs when they are installed.
1145
1146 Fri Aug 18 15:09:08 1995  Theodore Y. Ts'o  <tytso@dcl>
1147
1148         * debugfs.c (do_find_free_block): Fix typo in code which checked
1149                 to see if the usage message should be printed.
1150
1151 Thu Aug 17 22:55:58 1995    <tytso@rsts-11.mit.edu>
1152
1153         * debugfs.c (do_open_filesys): Change to always set optreset to 1,
1154                 to make BSD getopt()'s happy.  Also set optind to 1, which
1155                 should make more getopt()'s happy.
1156
1157 Fri Aug 11 08:45:01 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1158
1159         * debugfs.c (do_find_free_block, do_find_free_inode): Fix bug in
1160                 the usage handling where "ffi ?" or "ffb ?" would
1161                 dereference a NULL pointer.
1162
1163 Fri Aug 11 14:21:07 1995  Remy Card  <card@bbj>
1164
1165         * debugfs.8: Updated date and version number.
1166
1167 Thu Aug 10 14:28:50 1995  Remy Card  <card@bbj>
1168
1169         * debugfs.8: Fixed a spelling error in Ted's name :-)
1170
1171 Mon Jun 12 19:08:25 1995  Theodore Y. Ts'o  (tytso@dcl)
1172
1173         * debugfs.c, ncheck.c, icheck.c, lsdel.c, dump.c: Include
1174                 <errno.h> (if it exists)
1175
1176         * debugfs.c, dump.c, icheck.c, lsdel.c, ncheck.c: Don't include
1177                 <getopt.h> if it doesn't exist.
1178
1179 Sun Jun 11 15:21:07 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>
1180
1181         * ncheck.c (do_ncheck): Use LINUX_S_ISDIR instead of S_ISDIR
1182
1183         * debugfs.c: Implement the mknod and write commands (from Linus).
1184
1185                 Change names of modify_char, modify_short, and modify_long
1186                 to be modify_u8, modify_u16, and modify_u32, respectively.
1187
1188 Thu Jun  8 12:29:15 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>
1189
1190         * debugfs.c (dump_inode): Only print out inode frag fields if
1191         HAVE_EXT2_FRAGS is defined (by configure).  Don't print out the
1192         reserved field at all for  now.
1193
1194         * Makefile.in: Rewritten to conform to GNU coding standards and
1195         support separate compilation directories.
1196
1197 Thu Nov 24 17:46:23 1994  Theodore Y. Ts'o  (tytso@rt-11)
1198
1199         * dump.c: Added two new commands, "dump" and "cat", which allow
1200                 the user to dump the contents of an inode to a file or to
1201                 stdout, respectively.
1202
1203