Denys Vlasenko wrote:
>How about this version?

Neat.  The generated include file is much prettier and you managed to
squeeze out a few more bytes.

A couple of things:

   Since you've dropped the adjustment to the number of offsets you can
   remove 2*KNOWN_APPNAME_OFFSETS from the size calculation;

   hex_char() should really be called octal_char();

   and it has a whitespace issue.  (Sorry, that's three things.)

>However, I also think that this idea is slightly too insane...

Aww.  :-(

Most of the complexity is at build-time, in the generation of the applet
tables.  I'm actually quite pleased with how the run-time code turned out.

Ron
---
 applets/applet_tables.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/applets/applet_tables.c b/applets/applet_tables.c
index 69d451a..af9a658 100644
--- a/applets/applet_tables.c
+++ b/applets/applet_tables.c
@@ -86,14 +86,14 @@ struct bb_substr {
 static int numsub = 0;
 static struct bb_substr substr[128];
 
-static char *hex_char(unsigned char c)
+static char *octal_char(unsigned char c)
 {
        static char expand[8][8];
        static unsigned index = 0;
        char *t;
 
        t = expand[index];
-        index = (index + 1) % 8;
+       index = (index + 1) % 8;
 
        t[0] = c;
        t[1] = '\0';
@@ -277,7 +277,7 @@ int main(int argc, char **argv)
                }
 
                /* only use substrings if the saving outweighs the larger code 
*/
-               newtot = newlen + (numsub*SUBLEN) + 160 + 
2*KNOWN_APPNAME_OFFSETS;
+               newtot = newlen + (numsub*SUBLEN) + 160;
                ABBREV_APPLET_NAMES = (newtot < oldlen);
 
                if (ABBREV_APPLET_NAMES) {
@@ -295,13 +295,13 @@ int main(int argc, char **argv)
                printf("static const char applet_common[][2] ALIGN1 = {\n");
                for (n = 0; n < numsub; n++) {
                        printf("/* %s %2u %-8s */",
-                               hex_char(n + 0x80),
+                               octal_char(n + 0x80),
                                substr[n].count,
                                expand_name(substr[n].str)
                        );
                        printf(" {'%s','%s'},\n",
-                               hex_char(substr[n].str[0]),
-                               hex_char(substr[n].str[1])
+                               octal_char(substr[n].str[0]),
+                               octal_char(substr[n].str[1])
                        );
                }
                printf("};\n\n");
@@ -314,7 +314,7 @@ int main(int argc, char **argv)
                                expand_name(applets[i].abbrev)
                        );
                        for (s = applets[i].abbrev; *s; s++) {
-                               printf("%s", hex_char(*s));
+                               printf("%s", octal_char(*s));
                        }
                        printf("\" \"\\0\"\n");
                }
-- 
2.5.5

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to