OSDN Git Service

*** empty log message ***
authorarai <arai@6a8cc165-1e22-0410-a132-eb4e3f353aba>
Sun, 2 Feb 2003 16:18:44 +0000 (16:18 +0000)
committerarai <arai@6a8cc165-1e22-0410-a132-eb4e3f353aba>
Sun, 2 Feb 2003 16:18:44 +0000 (16:18 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/lha/lha/trunk@638 6a8cc165-1e22-0410-a132-eb4e3f353aba

Hackinf_of_LHa

index b5ada84..a21aadb 100644 (file)
@@ -3378,6 +3378,74 @@ codeparm[c] 
 ¤¤(¾¯¤Ê¤¯¤È¤âÉä¹æ²½¤Ë´Ø¤·¤Æ¤Ï¤½¤Î¤è¤¦¤À¡£huf.c ¤òį¤á¤ë¤È¤É¤¦¤ä¤éÉü¹æ
 »þ¤Ï left[]¡¢right[]¤Ï»È¤ï¤ì¤ë¤é¤·¤¤)¡£
 
+¤µ¤é¤Ë¤Õ¤È»×¤¤ÉÕ¤¤¤¿¡£Ææ¤Î (C) ¤Î¥³¡¼¥É¤À¤¬ ¿¼¤µ 17 °Ê¾å¤ÎÌÚ¤¬ºîÀ®¤µ¤ì
+¤¿¾ì¹ç¤ËÌÚ¤òºÆ¹½ÃÛ¤¹¤ë½èÍý¤À¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤Ã¤¿¡£ºÇ½é¡¢len_cnt[] (¤¢
+¤ë¿¼¤µ¤ÎÍդοô) ¤À¤±¤¬¡¢Áàºî¤µ¤ì¤Æ¤¤¤¿¤«¤é¤è¤¯¤ï¤«¤é¤Ê¤«¤Ã¤¿¤Î¤À¡¢
+
+    /* (C) */
+    /* adjust len */
+    if (cum) {
+        fprintf(stderr, "17");
+        len_cnt[16] -= cum; /* always len_cnt[16] > cum */
+        do {
+            for (i = 15; i > 0; i--) {
+                if (len_cnt[i]) {
+                    len_cnt[i]--;
+                    len_cnt[i + 1] += 2;
+                    break;
+                }
+            }
+        } while (--cum);
+    }
+
+¿¼¤µ n ¤ÎÍդοô¤ò 1 ¤Ä¸º¤é¤·¤Æ¡¢¤½¤Î²¼¤ÎÍդοô¤ò 2 Â­¤·¤Æ¤¤¤ë¡£
+¤³¤ì¤¬¡¢cum ¤Î¿ô¤À¤±·«¤êÊÖ¤µ¤ì¤ë¡£Î㤨¤Ð¡¢Á°¤Ë¤â½Ð¤¿
+
+                                                     :
+                   n /\       .. len_cnt[14] = 0000000000000001
+                    o /\       .. len_cnt[15] = 0000000000000001
+                     p /\       .. len_cnt[16] = 0000000000000011
+                      q  r                       ||||||||||||||||
+                                                 vvvvvvvvvvvvvvvv
+                                           cum = 0000000000000001
+
+¤ÎÎã¤Ç¤Ï¡¢ºÇ½é¤Ë len_cnt[16] ¤«¤é cum {1} ¤¬°ú¤«¤ì¡¢
+
+                                                     :
+                   n /\       .. len_cnt[14] = 0000000000000001
+                    o /\       .. len_cnt[15] = 0000000000000001
+                     p /       .. len_cnt[16] = 0000000000000010
+                      q
+
+³¤¤¤Æ¡¢¿¼¤µ 15 ¤è¤ê¾å¤ÎÍդΤ¢¤ëÀᤫ¤é 1 ¤Ä»Ò¤ò¼è¤ê¡¢
+
+                                                     :
+                   n /\       .. len_cnt[14] = 0000000000000001
+                      /\       .. len_cnt[15] = 0000000000000001
+                     p /        .. len_cnt[16] = 0000000000000010
+                      q
+
+²¼¤ÎÍդοô(¤³¤ÎÎã¤Ç¤Ï¡¢len_cnt[16])¤ò 2 Â­¤·¤Æ¤¤¤ë¡£
+
+                /   \
+              n    /  \       .. len_cnt[14] = 0000000000000001
+                 /\    /\      .. len_cnt[15] = 0000000000000000
+                o  r  p /       .. len_cnt[16] = 0000000000000100
+                       q
+
+cum ¤Ï¡¢¤³¤ÎÎã¤Ç¤Ï 0 ¤Ë¤Ê¤ë¤Î¤Ç¡¢¤³¤ì¤ÇÌÚ¤ÎÊ¿³ê²½¤Ï½ª¤ë¡£¥Æ¥­¥¹¥È¤À¤È
+¤Á¤ç¤Ã¤È¸«¤Ë¤¯¤¤¤¬¡¢¤½¤¦¤¤¤¦½èÍý¤È¤¤¤¦¤³¤È¤Ç´Ö°ã¤¤¤Ê¤¤¤À¤í¤¦¡£
+lenparm[] ¤ÎÃͤϤ³¤Î¸å¤Î (D) ¤Ç¡¢¤³¤ÎÌÚ¤ò¸µ¤Ë·×»»¤µ¤ì¤Æ¤¤¤ë¡£
+
+¤È¤³¤í¤Ç¡¢ËÜÅö¤Î½ê¤Ï°Ê²¼¤Î¤è¤¦¤Êʸ»ú¤ÎÂбþ¤Ë¤Ê¤ë(ɽ¤òºîÀ®¤¹¤ë¤È¤­¤Ëʸ
+»ú¥³¡¼¥É½ç¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤¿¤á)¤Î¤À¤¬¡¢·ë²ÌŪ¤Ë¸µ¤ÎÌÚ¤«¤é p ¤ò´Þ¤àÀá¤ò¼è¤ê
+½ü¤­ o ¤Î°ÌÃÖ¤ËÁÞÆþ¤¹¤ë½èÍý¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£¤Ê¤ó¤À¤«ÌÌÇò¤¤¡£
+
+                /   \
+              n    /  \       .. len_cnt[14] = 0000000000000001
+                 /\    /\      .. len_cnt[15] = 0000000000000000
+                o  p  q  r      .. len_cnt[16] = 0000000000000100
+
 # Local Variables:
 # mode : indented-text
 # indent-tabs-mode: nil