COMP.OS.CPM-------------- < Пред. | След. > -- < @ > -- < Сообщ. > -- < Эхи > --
 Nп/п : 45 из 100
 От   : Russell Marks                       2:5075/128        27 авг 23 10:43:31
 К    : Mark Ogden                                            27 авг 23 13:45:02
 Тема : Re: CP/M archive/compression tools
----------------------------------------------------------------------------------
                                                                                 
@MSGID: wsc3.469961@usenetxs.com>
0f02486a
@REPLY:
<daf6c815-1339-42c0-9073-46c6c0d31b50n@googlegroups.com> 6362d4f5
@REPLYADDR Russell Marks

@REPLYTO 2:5075/128 Russell Marks
@CHRS: CP866 2
@RFC: 1 0
<494bd71c-ca8a-41ee-8c37-6b186208e1aan@googlegroups.com><0jSdnQ_sDNGhB3v5nZ2dnZf
qnPidnZ2d@giganews.com><7da8e2b9-fdc9-b6b5-3c5c-de90a34604ee@gmail.com> 5204$aWW4.217957@usenetxs.com>MB_8.460033@usenetxs.com> 339-42c0-9073-46c6c0d31b50n@googlegroups.com>
@RFC-Message-ID:
wsc3.469961@usenetxs.com>
@TZUTC: 0000
@PID: Gnus/5.13 (Gnus v5.13)
@TID: FIDOGATE-5.12-ge4e8b94
Mark Ogden <ogdenpm@gmail.com> wrote:

> My mlbr utility https://github.com/ogdenpm/mlbr builds under linux

Speaking of mlbr, would you mind clarifying the licence? The closest
thing I can find (aside from miniz.h and uncrunch.c) is that "This is
an open source non-commercial project".

Also, what do you consider the licence to be on the original lzhuf.c?
I went to some effort to clarify this before adapting it for lbrate,
and I`d be interested in your perspective.

Finally, I found the most curious thing. This code from mlbr`s
uncrunch.c (which I`m assuming it`s reasonable to post in order to
comment on it):

    if (pred == IMPRED && chr == 0) {
        hashval = 0x800; /* special case (leaving the zero code free for EOF) */
    } else {
        /* normally we do a slightly awkward mid-square thing */
        uint16_t a = (((pred + chr) | 0x800) & 0x1fff);
        uint16_t b = (a >> 1);
        hashval    = (((b * (b + (a & 1))) >> 4) & 0xfff);
    }

...seems to have remarkably similar comments to this code I wrote in
2001 for lbrate`s readlzw.c:

if(oldcode==0xffff && chr==0)
  hashval=0x800;   /* special case (leaving the zero code free for EOF) */
else
  {
  /* normally we do a slightly awkward mid-square thing */
  a=(((oldcode+chr)|0x800)&0x1fff);
  b=(a>>1);
  hashval=(((b*(b+(a&1)))>>4)&0xfff);
  }

I also notice that most of an older version`s "slightly odd approach"
comment at line 109 here:

https://github.com/ogdenpm/mlbr/blob/35cf3093a4e7b39c70383c1b085391ca7cc62aec/un
crunch.c

...was in lbrate many years earlier, with the same "If" typo.

So I`d be interested in your thoughts on this as well.

-Rus.
--- Gnus/5.13 (Gnus v5.13)
 * Origin: this space intentionally left blank (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5075/128
@PATH: 5075/128 5020/1042 4441



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх