diff --git a/Source/crc32.c b/Source/crc32.c index d7feea83..f6543665 100644 --- a/Source/crc32.c +++ b/Source/crc32.c @@ -2,33 +2,28 @@ #ifdef NSIS_CONFIG_CRC_SUPPORT // this is based on the (slow,small) CRC32 implementation from zlib. - -static unsigned long crc_table[256]; - -static void make_crc_table() -{ - unsigned long c; - int n, k; - - for (n = 0; n < 256; n++) - { - c = (unsigned long)n; - for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320L : 0); - crc_table[n] = c; - } -} - - -// actually CRC32, but we put it in here so we don't -// have to modify the other code. unsigned long CRC32(unsigned long crc, const unsigned char *buf, unsigned int len) { - if (!crc_table[1]) make_crc_table(); + static unsigned long crc_table[256]; + + if (!crc_table[1]) + { + unsigned long c; + int n, k; + + for (n = 0; n < 256; n++) + { + c = (unsigned long)n; + for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320L : 0); + crc_table[n] = c; + } + } + crc = crc ^ 0xffffffffL; while (len-- > 0) { - crc = crc_table[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8); + crc = crc_table[(crc ^ (*buf++)) & 0xff] ^ (crc >> 8); } return crc ^ 0xffffffffL; } -#endif \ No newline at end of file +#endif diff --git a/Source/exehead/bgbg.c b/Source/exehead/bgbg.c index 32b357d3..97fd6cf7 100644 --- a/Source/exehead/bgbg.c +++ b/Source/exehead/bgbg.c @@ -19,24 +19,24 @@ static LRESULT CALLBACK BG_WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l int y; GetClientRect(hwnd,&r); // this portion by Drew Davidson, drewdavidson@mindspring.com - + // JF: made slower, reduced to 4 pixels high, because I like how it looks better/ for (y = r.top; y < r.bottom; y += 4) { int rv,gv,bv; RECT rect; HBRUSH brush; - rv = GetRValue(m_color2) * y / r.bottom + GetRValue(m_color1) * (r.bottom - y) / r.bottom; - gv = GetGValue(m_color2) * y / r.bottom + GetGValue(m_color1) * (r.bottom - y) / r.bottom; - bv = GetBValue(m_color2) * y / r.bottom + GetBValue(m_color1) * (r.bottom - y) / r.bottom; + rv = (GetRValue(m_color2) * y + GetRValue(m_color1) * (r.bottom - y)) / r.bottom; + gv = (GetGValue(m_color2) * y + GetGValue(m_color1) * (r.bottom - y)) / r.bottom; + bv = (GetBValue(m_color2) * y + GetBValue(m_color1) * (r.bottom - y)) / r.bottom; brush = CreateSolidBrush(RGB(rv,gv,bv)); SetRect(&rect, r.left, y, r.right, y+4); - // note that we don't need to do "SelectObject(hdc, brush)" + // note that we don't need to do "SelectObject(hdc, brush)" // because FillRect lets us specify the brush as a parameter. FillRect(hdc, &rect, brush); DeleteObject(brush); } - + if (m_textcolor != -1) { newFont = CreateFont(40,0,0,0,FW_BOLD,TRUE,FALSE,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"Garamond"); @@ -79,7 +79,7 @@ HWND bgWnd_Init(HINSTANCE hInstance, char *title, int color1, int color2, int co m_color1=color1; m_color2=color2; m_textcolor=color3; - + SystemParametersInfo(SPI_GETWORKAREA, 0, &vp, 0); return CreateWindow(classname,title,WS_VISIBLE|WS_OVERLAPPED|WS_THICKFRAME|WS_CAPTION|WS_SYSMENU|WS_MAXIMIZEBOX|WS_MINIMIZEBOX, @@ -87,4 +87,4 @@ HWND bgWnd_Init(HINSTANCE hInstance, char *title, int color1, int color2, int co } -#endif //NSIS_SUPPORT_BGBG \ No newline at end of file +#endif //NSIS_SUPPORT_BGBG