[Extractor-gtk-cvslog] SF.net SVN: extractor-gtk: [29] trunk/extractor/generic.c
Extract files from unusual archive formats
Brought to you by:
someone-guy
From: <som...@us...> - 2007-09-15 23:08:04
|
Revision: 29 http://extractor-gtk.svn.sourceforge.net/extractor-gtk/?rev=29&view=rev Author: someone-guy Date: 2007-09-15 16:08:02 -0700 (Sat, 15 Sep 2007) Log Message: ----------- Add very simple code to find and extract JPEG-data Modified Paths: -------------- trunk/extractor/generic.c Modified: trunk/extractor/generic.c =================================================================== --- trunk/extractor/generic.c 2007-09-15 23:07:54 UTC (rev 28) +++ trunk/extractor/generic.c 2007-09-15 23:08:02 UTC (rev 29) @@ -28,6 +28,7 @@ static file_t *get_list(FILE *in) { register uint32_t t = 0; + int i; int cnt = 0; file_t *list = calloc(1, sizeof(file_t)); rewind(in); @@ -48,6 +49,13 @@ list[cnt].len = read_le32(in); cnt++; break; + case 0xffd8ff: + add_entry(&list, cnt, "jpg"); + list[cnt].start = ftell(in) - 3; + list[cnt].len = 0; + list[cnt].priv = (void *)1; + cnt++; + break; } switch (t & 0xffff) { case TAG(0, 0, 'B', 'M'): @@ -56,6 +64,12 @@ list[cnt].len = read_le32(in); cnt++; break; + case 0xffd9: + for (i = 0; i < cnt; i++) { + if (list[i].priv == (void *)1 && list[i].len == 0) + list[i].len = ftell(in) - list[i].start; + } + break; } } return list; @@ -67,6 +81,6 @@ "*", check_file, get_list, - default_free_list, + default_free_ignorepriv, default_extract_file, }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |