Browse Source
Gerbview: remove dependencies from Pcbnew.
Gerbview: remove dependencies from Pcbnew.
Should allow Pcbnew code easier to change and Gerbview code more understandable and easier to maintain. Code cleaning (remove dead code, add comments). Minor other enhancements.pull/1/head
61 changed files with 2397 additions and 2247 deletions
-
1bitmaps_png/CMakeLists.txt
-
2common/CMakeLists.txt
-
2common/base_units.cpp
-
101common/class_layer_box_selector.cpp
-
2eeschema/menubar.cpp
-
16gerbview/CMakeLists.txt
-
105gerbview/block.cpp
-
22gerbview/class_GERBER.cpp
-
10gerbview/class_GERBER.h
-
2gerbview/class_excellon.h
-
80gerbview/class_gbr_layer_box_selector.cpp
-
51gerbview/class_gbr_layer_box_selector.h
-
45gerbview/class_gbr_layout.cpp
-
112gerbview/class_gbr_layout.h
-
22gerbview/class_gbr_screen.cpp
-
17gerbview/class_gbr_screen.h
-
21gerbview/class_gerber_draw_item.cpp
-
49gerbview/class_gerber_draw_item.h
-
28gerbview/class_gerbview_layer_widget.cpp
-
6gerbview/dcode.cpp
-
17gerbview/dialogs/dialog_print_using_printer.cpp
-
229gerbview/dialogs/dialog_select_one_pcb_layer.cpp
-
3gerbview/dialogs/dialog_show_page_borders.cpp
-
27gerbview/dialogs/gerbview_dialog_display_options_frame.cpp
-
108gerbview/draw_gerber_screen.cpp
-
67gerbview/events_called_functions.cpp
-
4gerbview/excellon_read_drill_file.cpp
-
402gerbview/export_to_pcbnew.cpp
-
19gerbview/gerbview.cpp
-
22gerbview/gerbview.h
-
4gerbview/gerbview_config.cpp
-
551gerbview/gerbview_frame.cpp
-
454gerbview/gerbview_frame.h
-
3gerbview/hotkeys.cpp
-
28gerbview/initpcb.cpp
-
13gerbview/locate.cpp
-
4gerbview/onleftclick.cpp
-
4gerbview/onrightclick.cpp
-
22gerbview/options.cpp
-
36gerbview/rs274d.cpp
-
97gerbview/select_layers_to_pcb.cpp
-
18gerbview/select_layers_to_pcb.h
-
25gerbview/toolbars_gerber.cpp
-
338import/edif2kicad/edif.y
-
8import/edif2kicad/makefile
-
19import/edif2kicad/savelib.c
-
1include/bitmaps.h
-
33include/class_layer_box_selector.h
-
6include/wxPcbStruct.h
-
1pcbnew/CMakeLists.txt
-
85pcbnew/basepcbframe.cpp
-
112pcbnew/class_pcb_layer_box_selector.cpp
-
73pcbnew/class_pcb_layer_box_selector.h
-
57pcbnew/dialog_freeroute_exchange_help_html.h
-
1pcbnew/edit.cpp
-
38pcbnew/printout_controler.cpp
-
5pcbnew/tool_pcb.cpp
-
1pcbnew/toolbars_update_user_interface.cpp
-
1zlib/CMakeLists.txt
-
855zlib/ChangeLog
-
159zlib/zlib.3
@ -0,0 +1,80 @@ |
|||
/**
|
|||
* @file class_gbr_layer_box_selector.cpp |
|||
* @brief a derived class of LAYER_BOX_SELECTOR to handle the layer box selector |
|||
* in GerbView |
|||
*/ |
|||
|
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 1992-2012 Jean-Pierre Charras <jean-pierre.charras@ujf-grenoble.fr> |
|||
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com> |
|||
* Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors. |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License |
|||
* as published by the Free Software Foundation; either version 2 |
|||
* of the License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, you may find one here: |
|||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|||
* or you may search the http://www.gnu.org website for the version 2 license,
|
|||
* or you may write to the Free Software Foundation, Inc., |
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|||
*/ |
|||
|
|||
#include <common.h>
|
|||
#include <colors_selection.h>
|
|||
#include <layers_id_colors_and_visibility.h>
|
|||
|
|||
#include <gerbview_frame.h>
|
|||
|
|||
#include <wx/ownerdrw.h>
|
|||
#include <wx/menuitem.h>
|
|||
#include <wx/bmpcbox.h>
|
|||
#include <wx/wx.h>
|
|||
|
|||
#include <class_gbr_layer_box_selector.h>
|
|||
|
|||
void GBR_LAYER_BOX_SELECTOR::Resync() |
|||
{ |
|||
Clear(); |
|||
|
|||
for( int layerid = 0; layerid < LAYER_COUNT; layerid++ ) |
|||
{ |
|||
wxBitmap layerbmp( 14, 14 ); |
|||
wxString layername; |
|||
|
|||
if( !IsLayerEnabled( layerid ) ) |
|||
continue; |
|||
|
|||
// Prepare Bitmap
|
|||
SetBitmapLayer( layerbmp, layerid ); |
|||
|
|||
layername = GetLayerName( layerid ); |
|||
|
|||
Append( layername, layerbmp, (void*) layerid ); |
|||
} |
|||
} |
|||
|
|||
// Returns a color index from the layer id
|
|||
int GBR_LAYER_BOX_SELECTOR::GetLayerColor( int aLayerIndex ) |
|||
{ |
|||
GERBVIEW_FRAME* frame = (GERBVIEW_FRAME*) GetParent()->GetParent(); |
|||
|
|||
return frame->GetLayerColor( aLayerIndex ); |
|||
} |
|||
|
|||
// Returns the name of the layer id
|
|||
const wxString GBR_LAYER_BOX_SELECTOR::GetLayerName( int aLayerIndex ) |
|||
{ |
|||
wxString name; |
|||
name.Printf( _( "Layer %d" ), aLayerIndex + 1 ); |
|||
return name; |
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
#ifndef CLASS_GBR_LAYER_BOX_SELECTOR_H |
|||
#define CLASS_GBR_LAYER_BOX_SELECTOR_H 1 |
|||
|
|||
#include <class_layer_box_selector.h> |
|||
|
|||
|
|||
/* class to display a layer list in GerbView. |
|||
* |
|||
*/ |
|||
|
|||
class GBR_LAYER_BOX_SELECTOR : public LAYER_BOX_SELECTOR |
|||
{ |
|||
public: |
|||
GBR_LAYER_BOX_SELECTOR( wxAuiToolBar* parent, wxWindowID id, |
|||
const wxPoint& pos = wxDefaultPosition, |
|||
const wxSize& size = wxDefaultSize, |
|||
int n = 0, const wxString choices[] = NULL ) |
|||
:LAYER_BOX_SELECTOR( parent, id, pos, size, n, choices ) |
|||
{ |
|||
m_layerhotkeys = false; |
|||
m_layerorder = false; |
|||
} |
|||
|
|||
GBR_LAYER_BOX_SELECTOR( wxAuiToolBar* parent, wxWindowID id, |
|||
const wxPoint& pos, const wxSize& size, |
|||
const wxArrayString& choices ) |
|||
:LAYER_BOX_SELECTOR( parent, id, pos, size, choices ) |
|||
{ |
|||
m_layerhotkeys = false; |
|||
m_layerorder = false; |
|||
} |
|||
|
|||
|
|||
// Reload the Layers names and bitmaps |
|||
// Virtual function |
|||
void Resync(); |
|||
|
|||
// Returns a color index from the layer id |
|||
// Virtual function |
|||
int GetLayerColor( int aLayerIndex ); |
|||
|
|||
// Returns true if the layer id is enabled (i.e. is it should be displayed) |
|||
// Virtual function |
|||
bool IsLayerEnabled( int aLayerIndex ) { return true; }; |
|||
|
|||
// Returns the name of the layer id |
|||
// Virtual function |
|||
const wxString GetLayerName( int aLayerIndex ); |
|||
}; |
|||
|
|||
#endif //CLASS_GBR_LAYER_BOX_SELECTOR_H |
|||
@ -0,0 +1,45 @@ |
|||
/**
|
|||
* @file class_gbr_layout.cpp |
|||
* @brief GBR_LAYOUT class functions. |
|||
*/ |
|||
|
|||
#include <limits.h>
|
|||
#include <algorithm>
|
|||
|
|||
#include <fctsys.h>
|
|||
#include <common.h>
|
|||
#include <class_gbr_layout.h>
|
|||
|
|||
GBR_LAYOUT::GBR_LAYOUT() |
|||
{ |
|||
PAGE_INFO pageInfo( wxT( "GERBER" ) ); |
|||
SetPageSettings( pageInfo ); |
|||
m_printLayersMask = -1; |
|||
} |
|||
|
|||
|
|||
GBR_LAYOUT::~GBR_LAYOUT() |
|||
{ |
|||
} |
|||
|
|||
/* Function IsLayerVisible
|
|||
* tests whether a given layer is visible |
|||
* param aLayerIndex = The index of the layer to be tested |
|||
* return bool - true if the layer is visible. |
|||
*/ |
|||
bool GBR_LAYOUT::IsLayerVisible( int aLayerIndex ) const |
|||
{ |
|||
return m_printLayersMask & (1 << aLayerIndex ); |
|||
} |
|||
|
|||
|
|||
EDA_RECT GBR_LAYOUT::ComputeBoundingBox() |
|||
{ |
|||
EDA_RECT bbox; |
|||
|
|||
for( GERBER_DRAW_ITEM* gerb_item = m_Drawings; gerb_item; gerb_item = gerb_item->Next() ) |
|||
bbox.Merge( gerb_item->GetBoundingBox() ); |
|||
|
|||
SetBoundingBox( bbox ); |
|||
return bbox; |
|||
} |
|||
@ -0,0 +1,112 @@ |
|||
/** |
|||
* @file class_gbr_layout.h |
|||
* @brief Class CLASS_GBR_LAYOUT to handle a board. |
|||
*/ |
|||
|
|||
#ifndef CLASS_GBR_LAYOUT_H |
|||
#define CLASS_GBR_LAYOUT_H |
|||
|
|||
|
|||
#include <dlist.h> |
|||
|
|||
// #include <layers_id_colors_and_visibility.h> |
|||
#include <class_colors_design_settings.h> |
|||
#include <common.h> // PAGE_INFO |
|||
#include <class_title_block.h> |
|||
#include <class_gerber_draw_item.h> |
|||
|
|||
|
|||
/** |
|||
* Class GBR_LAYOUT |
|||
* holds list of GERBER_DRAW_ITEM currently loaded. |
|||
*/ |
|||
class GBR_LAYOUT |
|||
{ |
|||
private: |
|||
EDA_RECT m_BoundingBox; |
|||
PAGE_INFO m_paper; |
|||
TITLE_BLOCK m_titles; |
|||
wxPoint m_originAxisPosition; |
|||
int m_printLayersMask; // When printing: the list of layers to print |
|||
public: |
|||
|
|||
DLIST<GERBER_DRAW_ITEM> m_Drawings; // linked list of Gerber Items |
|||
|
|||
GBR_LAYOUT(); |
|||
~GBR_LAYOUT(); |
|||
|
|||
const PAGE_INFO& GetPageSettings() const { return m_paper; } |
|||
void SetPageSettings( const PAGE_INFO& aPageSettings ) { m_paper = aPageSettings; } |
|||
|
|||
const wxPoint& GetOriginAxisPosition() const |
|||
{ |
|||
return m_originAxisPosition; |
|||
} |
|||
|
|||
void SetOriginAxisPosition( const wxPoint& aPosition ) |
|||
{ |
|||
m_originAxisPosition = aPosition; |
|||
} |
|||
|
|||
TITLE_BLOCK& GetTitleBlock() |
|||
{ |
|||
return m_titles; |
|||
} |
|||
|
|||
void SetTitleBlock( const TITLE_BLOCK& aTitleBlock ) |
|||
{ |
|||
m_titles = aTitleBlock; |
|||
} |
|||
|
|||
/** |
|||
* Function ComputeBoundingBox |
|||
* calculates the bounding box containing all Gerber items. |
|||
* @return EDA_RECT - the full item list bounding box |
|||
*/ |
|||
EDA_RECT ComputeBoundingBox(); |
|||
|
|||
/** |
|||
* Function GetBoundingBox |
|||
* may be called soon after ComputeBoundingBox() to return the same EDA_RECT, |
|||
* as long as the CLASS_GBR_LAYOUT has not changed. |
|||
*/ |
|||
EDA_RECT GetBoundingBox() const { return m_BoundingBox; } // override |
|||
|
|||
void SetBoundingBox( const EDA_RECT& aBox ) { m_BoundingBox = aBox; } |
|||
|
|||
/** |
|||
* Function Draw. |
|||
* Redraw the CLASS_GBR_LAYOUT items but not cursors, axis or grid. |
|||
* @param aPanel = the panel relative to the board |
|||
* @param aDC = the current device context |
|||
* @param aDrawMode = GR_COPY, GR_OR ... (not always used) |
|||
* @param aOffset = an draw offset value |
|||
*/ |
|||
void Draw( EDA_DRAW_PANEL* aPanel, wxDC* aDC, |
|||
int aDrawMode, const wxPoint& aOffset ); |
|||
|
|||
/** |
|||
* Function SetVisibleLayers |
|||
* changes the bit-mask of visible layers |
|||
* @param aLayerMask = The new bit-mask of visible layers |
|||
*/ |
|||
void SetVisibleLayers( int aLayerMask ) |
|||
{ |
|||
m_printLayersMask = aLayerMask; |
|||
} |
|||
|
|||
/** |
|||
* Function IsLayerVisible |
|||
* tests whether a given layer is visible |
|||
* @param aLayerIndex = The index of the layer to be tested |
|||
* @return bool - true if the layer is visible. |
|||
*/ |
|||
bool IsLayerVisible( int aLayerIndex ) const; |
|||
|
|||
#if defined(DEBUG) |
|||
void Show( int nestLevel, std::ostream& os ) const; // overload |
|||
|
|||
#endif |
|||
}; |
|||
|
|||
#endif // #ifndef CLASS_GBR_LAYOUT_H |
|||
@ -0,0 +1,229 @@ |
|||
/**
|
|||
* @file select_pcb_layer.cpp |
|||
* @brief Set up a dialog to choose a PCB Layer. |
|||
*/ |
|||
|
|||
#include <fctsys.h>
|
|||
#include <gerbview_frame.h>
|
|||
#include <select_layers_to_pcb.h>
|
|||
|
|||
// Exported function
|
|||
const wxString GetPCBDefaultLayerName( int aLayerNumber ); |
|||
|
|||
|
|||
enum layer_sel_id { |
|||
ID_LAYER_SELECT_TOP = 1800, |
|||
ID_LAYER_SELECT_BOTTOM, |
|||
ID_LAYER_SELECT |
|||
}; |
|||
|
|||
|
|||
class SELECT_LAYER_DIALOG : public wxDialog |
|||
{ |
|||
private: |
|||
GERBVIEW_FRAME* m_Parent; |
|||
wxRadioBox* m_LayerList; |
|||
int m_LayerId[NB_LAYERS + 1]; // One extra element for "(Deselect)" radiobutton
|
|||
|
|||
public: |
|||
// Constructor and destructor
|
|||
SELECT_LAYER_DIALOG( GERBVIEW_FRAME* parent, int aDefaultLayer, |
|||
int aCopperLayerCount, bool aShowDeselectOption ); |
|||
~SELECT_LAYER_DIALOG() { }; |
|||
|
|||
private: |
|||
void OnLayerSelected( wxCommandEvent& event ); |
|||
void OnCancelClick( wxCommandEvent& event ); |
|||
|
|||
DECLARE_EVENT_TABLE() |
|||
}; |
|||
|
|||
|
|||
BEGIN_EVENT_TABLE( SELECT_LAYER_DIALOG, wxDialog ) |
|||
EVT_BUTTON( wxID_OK, SELECT_LAYER_DIALOG::OnLayerSelected ) |
|||
EVT_BUTTON( wxID_CANCEL, SELECT_LAYER_DIALOG::OnCancelClick ) |
|||
EVT_RADIOBOX( ID_LAYER_SELECT, SELECT_LAYER_DIALOG::OnLayerSelected ) |
|||
END_EVENT_TABLE() |
|||
|
|||
|
|||
/** Install the dialog box for layer selection
|
|||
* @param aDefaultLayer = Preselection (NB_LAYERS for "(Deselect)" layer) |
|||
* @param aCopperLayerCount = number of copper layers |
|||
* @param aShowDeselectOption = display a "(Deselect)" radiobutton (when set to true) |
|||
* @return new layer value (NB_LAYERS when "(Deselect)" radiobutton selected), |
|||
* or -1 if canceled |
|||
* |
|||
* Providing the option to also display a "(Deselect)" radiobutton makes the |
|||
* GerbView's "Export to Pcbnew" command) more "user friendly", |
|||
* by permitting any layer to be "deselected" immediately after its |
|||
* corresponding radiobutton has been clicked on. (It would otherwise be |
|||
* necessary to first cancel the "Select Layer:" dialog box (invoked after a |
|||
* different radiobutton is clicked on) prior to then clicking on the "Deselect" |
|||
* button provided within the "Layer selection:" dialog box). |
|||
*/ |
|||
int GERBVIEW_FRAME::SelectPCBLayer( int aDefaultLayer, int aCopperLayerCount, bool aShowDeselectOption ) |
|||
{ |
|||
int layer; |
|||
SELECT_LAYER_DIALOG* frame = new SELECT_LAYER_DIALOG( this, aDefaultLayer, |
|||
aCopperLayerCount, |
|||
aShowDeselectOption ); |
|||
|
|||
layer = frame->ShowModal(); |
|||
frame->Destroy(); |
|||
return layer; |
|||
} |
|||
|
|||
|
|||
/*
|
|||
* The "OK" and "Cancel" buttons are positioned (in a horizontal line) |
|||
* beneath the "Layer" radiobox, unless that contains only one column of |
|||
* radiobuttons, in which case they are positioned (in a vertical line) |
|||
* to the right of that radiobox. |
|||
*/ |
|||
SELECT_LAYER_DIALOG::SELECT_LAYER_DIALOG( GERBVIEW_FRAME* parent, |
|||
int aDefaultLayer, int aCopperLayerCount, |
|||
bool aShowDeselectOption ) : |
|||
wxDialog( parent, -1, _( "Select Layer:" ), wxPoint( -1, -1 ), |
|||
wxSize( 470, 250 ), |
|||
DIALOG_STYLE ) |
|||
{ |
|||
wxButton* Button; |
|||
int ii; |
|||
wxString LayerList[NB_LAYERS + 1]; // One extra element for "(Deselect)"
|
|||
// radiobutton
|
|||
int LayerCount, LayerSelect = -1; |
|||
|
|||
m_Parent = parent; |
|||
|
|||
// Build the layer list; first build copper layers list
|
|||
LayerCount = 0; |
|||
for( ii = 0; ii < BOARD_COPPER_LAYERS_MAX_COUNT; ii++ ) |
|||
{ |
|||
m_LayerId[ii] = 0; |
|||
|
|||
if( ii == 0 || ii == BOARD_COPPER_LAYERS_MAX_COUNT-1 || ii < aCopperLayerCount-1 ) |
|||
{ |
|||
LayerList[LayerCount] = GetPCBDefaultLayerName( ii ); |
|||
|
|||
if( ii == aDefaultLayer ) |
|||
LayerSelect = LayerCount; |
|||
|
|||
m_LayerId[LayerCount] = ii; |
|||
LayerCount++; |
|||
} |
|||
} |
|||
// Build the layer list; build copper layers list
|
|||
for( ; ii < NB_LAYERS; ii++ ) |
|||
{ |
|||
m_LayerId[ii] = 0; |
|||
|
|||
LayerList[LayerCount] = GetPCBDefaultLayerName( ii ); |
|||
|
|||
if( ii == aDefaultLayer ) |
|||
LayerSelect = LayerCount; |
|||
|
|||
m_LayerId[LayerCount] = ii; |
|||
LayerCount++; |
|||
} |
|||
|
|||
// When appropriate, also provide a "(Deselect)" radiobutton
|
|||
if( aShowDeselectOption ) |
|||
{ |
|||
LayerList[LayerCount] = _( "(Deselect)" ); |
|||
|
|||
if( NB_LAYERS == aDefaultLayer ) |
|||
LayerSelect = LayerCount; |
|||
|
|||
m_LayerId[LayerCount] = NB_LAYERS; |
|||
LayerCount++; |
|||
} |
|||
|
|||
m_LayerList = new wxRadioBox( this, ID_LAYER_SELECT, _( "Layer" ), |
|||
wxPoint( -1, -1 ), wxSize( -1, -1 ), |
|||
LayerCount, LayerList, |
|||
(LayerCount < 8) ? LayerCount : 8, |
|||
wxRA_SPECIFY_ROWS ); |
|||
|
|||
if( LayerSelect >= 0 ) |
|||
m_LayerList->SetSelection( LayerSelect ); |
|||
|
|||
wxBoxSizer* FrameBoxSizer = new wxBoxSizer( wxHORIZONTAL ); |
|||
SetSizer( FrameBoxSizer ); |
|||
FrameBoxSizer->Add( m_LayerList, 0, wxALIGN_TOP | wxALL, 5 ); |
|||
wxBoxSizer* ButtonBoxSizer = new wxBoxSizer( wxVERTICAL ); |
|||
FrameBoxSizer->Add( ButtonBoxSizer, 0, wxALIGN_BOTTOM | wxALL, 0 ); |
|||
|
|||
Button = new wxButton( this, wxID_OK, _( "OK" ) ); |
|||
Button->SetDefault(); |
|||
ButtonBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
Button = new wxButton( this, wxID_CANCEL, _( "Cancel" ) ); |
|||
ButtonBoxSizer->Add( Button, 0, wxGROW | wxALL, 5 ); |
|||
|
|||
SetFocus(); |
|||
|
|||
GetSizer()->SetSizeHints( this ); |
|||
|
|||
Center(); |
|||
} |
|||
|
|||
|
|||
void SELECT_LAYER_DIALOG::OnLayerSelected( wxCommandEvent& event ) |
|||
{ |
|||
int ii = m_LayerId[m_LayerList->GetSelection()]; |
|||
|
|||
EndModal( ii ); |
|||
} |
|||
|
|||
|
|||
void SELECT_LAYER_DIALOG::OnCancelClick( wxCommandEvent& event ) |
|||
{ |
|||
EndModal( -1 ); |
|||
} |
|||
|
|||
const wxString GetPCBDefaultLayerName( int aLayerNumber ) |
|||
{ |
|||
const wxChar* txt; |
|||
|
|||
// These are only default layer names. For Pcbnew the copper names
|
|||
// may be over-ridden in the BOARD (*.brd) file.
|
|||
|
|||
// Use a switch to explicitly show the mapping more clearly
|
|||
switch( aLayerNumber ) |
|||
{ |
|||
case LAYER_N_FRONT: txt = _( "Front" ); break; |
|||
case LAYER_N_2: txt = _( "Inner2" ); break; |
|||
case LAYER_N_3: txt = _( "Inner3" ); break; |
|||
case LAYER_N_4: txt = _( "Inner4" ); break; |
|||
case LAYER_N_5: txt = _( "Inner5" ); break; |
|||
case LAYER_N_6: txt = _( "Inner6" ); break; |
|||
case LAYER_N_7: txt = _( "Inner7" ); break; |
|||
case LAYER_N_8: txt = _( "Inner8" ); break; |
|||
case LAYER_N_9: txt = _( "Inner9" ); break; |
|||
case LAYER_N_10: txt = _( "Inner10" ); break; |
|||
case LAYER_N_11: txt = _( "Inner11" ); break; |
|||
case LAYER_N_12: txt = _( "Inner12" ); break; |
|||
case LAYER_N_13: txt = _( "Inner13" ); break; |
|||
case LAYER_N_14: txt = _( "Inner14" ); break; |
|||
case LAYER_N_15: txt = _( "Inner15" ); break; |
|||
case LAYER_N_BACK: txt = _( "Back" ); break; |
|||
case ADHESIVE_N_BACK: txt = _( "Adhes_Back" ); break; |
|||
case ADHESIVE_N_FRONT: txt = _( "Adhes_Front" ); break; |
|||
case SOLDERPASTE_N_BACK: txt = _( "SoldP_Back" ); break; |
|||
case SOLDERPASTE_N_FRONT: txt = _( "SoldP_Front" ); break; |
|||
case SILKSCREEN_N_BACK: txt = _( "SilkS_Back" ); break; |
|||
case SILKSCREEN_N_FRONT: txt = _( "SilkS_Front" ); break; |
|||
case SOLDERMASK_N_BACK: txt = _( "Mask_Back" ); break; |
|||
case SOLDERMASK_N_FRONT: txt = _( "Mask_Front" ); break; |
|||
case DRAW_N: txt = _( "Drawings" ); break; |
|||
case COMMENT_N: txt = _( "Comments" ); break; |
|||
case ECO1_N: txt = _( "Eco1" ); break; |
|||
case ECO2_N: txt = _( "Eco2" ); break; |
|||
case EDGE_N: txt = _( "PCB_Edges" ); break; |
|||
default: txt = _( "BAD INDEX" ); break; |
|||
} |
|||
|
|||
return wxString( txt ); |
|||
} |
|||
|
|||
|
|||
@ -0,0 +1,112 @@ |
|||
/**
|
|||
* @file class_pcb_layer_box_selector.cpp |
|||
* @brief a derived class of LAYER_BOX_SELECTOR to handle the layer box selector |
|||
* in Pcbnew |
|||
*/ |
|||
|
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 1992-2012 Jean-Pierre Charras <jean-pierre.charras@ujf-grenoble.fr> |
|||
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com> |
|||
* Copyright (C) 1992-2012 KiCad Developers, see change_log.txt for contributors. |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License |
|||
* as published by the Free Software Foundation; either version 2 |
|||
* of the License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, you may find one here: |
|||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|||
* or you may search the http://www.gnu.org website for the version 2 license,
|
|||
* or you may write to the Free Software Foundation, Inc., |
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|||
*/ |
|||
#include <common.h>
|
|||
#include <pcbnew.h>
|
|||
#include <wxPcbStruct.h>
|
|||
#include <class_board_design_settings.h>
|
|||
#include <colors_selection.h>
|
|||
#include <layers_id_colors_and_visibility.h>
|
|||
|
|||
#include <class_board.h>
|
|||
#include <hotkeys.h>
|
|||
|
|||
#include <wx/ownerdrw.h>
|
|||
#include <wx/menuitem.h>
|
|||
#include <wx/bmpcbox.h>
|
|||
#include <wx/wx.h>
|
|||
|
|||
#include <class_pcb_layer_box_selector.h>
|
|||
|
|||
/* class to display a layer list.
|
|||
* |
|||
*/ |
|||
|
|||
|
|||
// Reload the Layers
|
|||
void PCB_LAYER_BOX_SELECTOR::Resync() |
|||
{ |
|||
Clear(); |
|||
|
|||
static DECLARE_LAYERS_ORDER_LIST( layertranscode ); |
|||
static DECLARE_LAYERS_HOTKEY( layerhk ); |
|||
|
|||
for( int i = 0; i < LAYER_COUNT; i++ ) |
|||
{ |
|||
wxBitmap layerbmp( 14, 14 ); |
|||
wxString layername; |
|||
int layerid = i; |
|||
|
|||
if( m_layerorder ) |
|||
layerid = layertranscode[i]; |
|||
|
|||
if( ! IsLayerEnabled( layerid ) ) |
|||
continue; |
|||
|
|||
SetBitmapLayer( layerbmp, layerid ); |
|||
|
|||
layername = GetLayerName( layerid ); |
|||
|
|||
if( m_layerhotkeys && m_hotkeys != NULL ) |
|||
layername = AddHotkeyName( layername, m_hotkeys, layerhk[layerid], IS_COMMENT ); |
|||
|
|||
Append( layername, layerbmp, (void*) layerid ); |
|||
} |
|||
} |
|||
|
|||
// Returns true if the layer id is enabled (i.e. is it should be displayed)
|
|||
bool PCB_LAYER_BOX_SELECTOR::IsLayerEnabled( int aLayerIndex ) |
|||
{ |
|||
PCB_BASE_FRAME* pcbFrame = (PCB_BASE_FRAME*) GetParent()->GetParent(); |
|||
BOARD* board = pcbFrame->GetBoard(); |
|||
wxASSERT( board != NULL ); |
|||
|
|||
return board->IsLayerEnabled( aLayerIndex ); |
|||
} |
|||
|
|||
// Returns a color index from the layer id
|
|||
int PCB_LAYER_BOX_SELECTOR::GetLayerColor( int aLayerIndex ) |
|||
{ |
|||
PCB_BASE_FRAME* pcbFrame = (PCB_BASE_FRAME*) GetParent()->GetParent(); |
|||
BOARD* board = pcbFrame->GetBoard(); |
|||
wxASSERT( board != NULL ); |
|||
|
|||
return board->GetLayerColor( aLayerIndex ); |
|||
} |
|||
|
|||
// Returns the name of the layer id
|
|||
const wxString PCB_LAYER_BOX_SELECTOR::GetLayerName( int aLayerIndex ) |
|||
{ |
|||
PCB_BASE_FRAME* pcbFrame = (PCB_BASE_FRAME*) GetParent()->GetParent(); |
|||
BOARD* board = pcbFrame->GetBoard(); |
|||
wxASSERT( board != NULL ); |
|||
|
|||
return board->GetLayerName( aLayerIndex ); |
|||
} |
|||
@ -0,0 +1,73 @@ |
|||
#ifndef CLASS_PCB_PCB_LAYER_BOX_SELECTOR_H |
|||
#define CLASS_PCB_PCB_LAYER_BOX_SELECTOR_H 1 |
|||
|
|||
#include <class_layer_box_selector.h> |
|||
|
|||
|
|||
/* class to display a layer list in Pcbnew. |
|||
* |
|||
*/ |
|||
|
|||
/* class to display a layer list. |
|||
* |
|||
*/ |
|||
|
|||
class PCB_LAYER_BOX_SELECTOR : public LAYER_BOX_SELECTOR |
|||
{ |
|||
public: |
|||
// Hotkey Info |
|||
struct EDA_HOTKEY_CONFIG* m_hotkeys; |
|||
|
|||
public: |
|||
PCB_LAYER_BOX_SELECTOR( wxAuiToolBar* parent, wxWindowID id, |
|||
const wxPoint& pos = wxDefaultPosition, |
|||
const wxSize& size = wxDefaultSize, |
|||
int n = 0, const wxString choices[] = NULL ) |
|||
:LAYER_BOX_SELECTOR( parent, id, pos, size, n, choices ) |
|||
{ |
|||
} |
|||
|
|||
PCB_LAYER_BOX_SELECTOR( wxAuiToolBar* parent, wxWindowID id, |
|||
const wxPoint& pos, const wxSize& size, |
|||
const wxArrayString& choices ) |
|||
:LAYER_BOX_SELECTOR( parent, id, pos, size, choices ) |
|||
{ |
|||
} |
|||
|
|||
// Reload the Layers names and bitmaps |
|||
// Virtual function |
|||
void Resync(); |
|||
|
|||
// Returns a color index from the layer id |
|||
// Virtual function |
|||
int GetLayerColor( int aLayerIndex ); |
|||
|
|||
// Returns true if the layer id is enabled (i.e. is it should be displayed) |
|||
// Virtual function |
|||
bool IsLayerEnabled( int aLayerIndex ); |
|||
|
|||
// Returns the name of the layer id |
|||
// Virtual function |
|||
const wxString GetLayerName( int aLayerIndex ); |
|||
}; |
|||
|
|||
#define DECLARE_LAYERS_HOTKEY(list) int list[LAYER_COUNT] = \ |
|||
{ \ |
|||
HK_SWITCH_LAYER_TO_COPPER, \ |
|||
HK_SWITCH_LAYER_TO_INNER1, \ |
|||
HK_SWITCH_LAYER_TO_INNER2, \ |
|||
HK_SWITCH_LAYER_TO_INNER3, \ |
|||
HK_SWITCH_LAYER_TO_INNER4, \ |
|||
HK_SWITCH_LAYER_TO_INNER5, \ |
|||
HK_SWITCH_LAYER_TO_INNER6, \ |
|||
HK_SWITCH_LAYER_TO_INNER7, \ |
|||
HK_SWITCH_LAYER_TO_INNER8, \ |
|||
HK_SWITCH_LAYER_TO_INNER9, \ |
|||
HK_SWITCH_LAYER_TO_INNER10, \ |
|||
HK_SWITCH_LAYER_TO_INNER11, \ |
|||
HK_SWITCH_LAYER_TO_INNER12, \ |
|||
HK_SWITCH_LAYER_TO_INNER13, \ |
|||
HK_SWITCH_LAYER_TO_INNER14, \ |
|||
HK_SWITCH_LAYER_TO_COMPONENT \ |
|||
}; |
|||
#endif //CLASS_PCB_PCB_LAYER_BOX_SELECTOR_H |
|||
@ -0,0 +1,57 @@ |
|||
// Do not edit this file, it is autogenerated by CMake from an HTML file |
|||
"<html>" |
|||
"<!-- This file is used to autogenerate a *.h file, but you can load it into a browser to preview -->" |
|||
"<h1>Freerouter Guidelines:</h1>" |
|||
"<ol>" |
|||
"<li> in pcbnew, using the Layers Setup dialog:</li><br>" |
|||
" <li>choose the number of layers, and enter the name of each layer.</li><br><br>" |
|||
" These should look something like this (if a 6 layer board):" |
|||
"<ul>" |
|||
" <li>Front - signal</li>" |
|||
" <li>Ground - power</li>" |
|||
" <li>H1_Signal - signal</li>" |
|||
" <li>V2_Signal - signal</li>" |
|||
" <li>Power - power</li>" |
|||
" <li>Back - signal</li>" |
|||
"</ul><br>" |
|||
" Notice that after the layer name there is a layer type field, either 'signal' or 'power', typically." |
|||
" Any layer identified as 'power' will be removed from the layer menu in Freerouter," |
|||
" as this will be assumed to contain a power zone." |
|||
"</li><br><br>" |
|||
"<li> in pcbnew: establish board perimeter.</li><br>" |
|||
"<li> in pcbnew: load in the netlist so you have all the components defined and instantiated.</li><br>" |
|||
"<li> in pcbnew: establish any zones, inclusive of net association.</li><br>" |
|||
"<li> in pcbnew: do the degree of component placements you are comfortable with." |
|||
" It is a little easier to accurately position components in pcbnew than in" |
|||
" freerouter, but either will work.</li><br>" |
|||
"<li> in pcbnew: set up the netclasses. Power traces might be a little thicker" |
|||
" than signal traces. If so, add a netclass called 'power'." |
|||
" Make its traces thicker than what you establish for netclass 'Default'." |
|||
" Set trace width, spacing and vias for each netclass.</li><br>" |
|||
"<li> in pcbnew: export to DSN.</li><br>" |
|||
"<li> load up freerouter (keep it running for any subsequent iterations of 5) through 16) here).</li><br>" |
|||
"<li> in freerouter: load the project's *.dsn file. Immediately after a load, all" |
|||
" components and traces (if any) will initially be 'fixed'. This is a 'lock" |
|||
" in place' toggle that you can undo by selecting a region with your mouse" |
|||
" and then selecting 'Unfix' from the menu. Occassionally you may want to" |
|||
" re-fix a trace or a part, if only temporarily. This keeps it locked in" |
|||
" place." |
|||
"</li><br>" |
|||
"<li> useful, not mandatory: in freerouter: set your move snap modulus, which seems" |
|||
" to default to 1 internal unit." |
|||
" 20 mils in x and in y is about reasonable.</li><br>" |
|||
"<li> in freerouter: finish placing any components, you can change sides of a part" |
|||
" here also, rotate, whatever.</li><br>" |
|||
"<li> in freerouter: route the board, and save frequently to a *.dsn file while" |
|||
" routing in case of power loss. Pick the menu option for saving a full *.dsn" |
|||
" file, not a session file (yet). The full freerouter *.dsn file is a superset" |
|||
" format, one that can be reloaded in the event of a power loss. Whereas the" |
|||
" *.ses file is not a complete design, but only with the *.brd file" |
|||
" constitutes a full design. So it is important to backup your work to a" |
|||
" *.dsn file while routing in case of power loss.</li><br>" |
|||
"<li> in freerouter: when done, or when you want to back import, then save as a session file, *.ses.</li><br>" |
|||
"<li> in pcbnew: backimport the session file</li><br>" |
|||
"<li> in pcbnew: at this point the zones have to be refilled. One way to do that" |
|||
" is to simply run DRC.</li>" |
|||
"</ol>" |
|||
"</html>" |
|||
@ -1,855 +0,0 @@ |
|||
|
|||
ChangeLog file for zlib |
|||
|
|||
Changes in 1.2.3 (18 July 2005) |
|||
- Apply security vulnerability fixes to contrib/infback9 as well |
|||
- Clean up some text files (carriage returns, trailing space) |
|||
- Update testzlib, vstudio, masmx64, and masmx86 in contrib [Vollant] |
|||
|
|||
Changes in 1.2.2.4 (11 July 2005) |
|||
- Add inflatePrime() function for starting inflation at bit boundary |
|||
- Avoid some Visual C warnings in deflate.c |
|||
- Avoid more silly Visual C warnings in inflate.c and inftrees.c for 64-bit |
|||
compile |
|||
- Fix some spelling errors in comments [Betts] |
|||
- Correct inflateInit2() error return documentation in zlib.h |
|||
- Added zran.c example of compressed data random access to examples |
|||
directory, shows use of inflatePrime() |
|||
- Fix cast for assignments to strm->state in inflate.c and infback.c |
|||
- Fix zlibCompileFlags() in zutil.c to use 1L for long shifts [Oberhumer] |
|||
- Move declarations of gf2 functions to right place in crc32.c [Oberhumer] |
|||
- Add cast in trees.c t avoid a warning [Oberhumer] |
|||
- Avoid some warnings in fitblk.c, gun.c, gzjoin.c in examples [Oberhumer] |
|||
- Update make_vms.com [Zinser] |
|||
- Initialize state->write in inflateReset() since copied in inflate_fast() |
|||
- Be more strict on incomplete code sets in inflate_table() and increase |
|||
ENOUGH and MAXD -- this repairs a possible security vulnerability for |
|||
invalid inflate input. Thanks to Tavis Ormandy and Markus Oberhumer for |
|||
discovering the vulnerability and providing test cases. |
|||
- Add ia64 support to configure for HP-UX [Smith] |
|||
- Add error return to gzread() for format or i/o error [Levin] |
|||
- Use malloc.h for OS/2 [Necasek] |
|||
|
|||
Changes in 1.2.2.3 (27 May 2005) |
|||
- Replace 1U constants in inflate.c and inftrees.c for 64-bit compile |
|||
- Typecast fread() return values in gzio.c [Vollant] |
|||
- Remove trailing space in minigzip.c outmode (VC++ can't deal with it) |
|||
- Fix crc check bug in gzread() after gzungetc() [Heiner] |
|||
- Add the deflateTune() function to adjust internal compression parameters |
|||
- Add a fast gzip decompressor, gun.c, to examples (use of inflateBack) |
|||
- Remove an incorrect assertion in examples/zpipe.c |
|||
- Add C++ wrapper in infback9.h [Donais] |
|||
- Fix bug in inflateCopy() when decoding fixed codes |
|||
- Note in zlib.h how much deflateSetDictionary() actually uses |
|||
- Remove USE_DICT_HEAD in deflate.c (would mess up inflate if used) |
|||
- Add _WIN32_WCE to define WIN32 in zconf.in.h [Spencer] |
|||
- Don't include stderr.h or errno.h for _WIN32_WCE in zutil.h [Spencer] |
|||
- Add gzdirect() function to indicate transparent reads |
|||
- Update contrib/minizip [Vollant] |
|||
- Fix compilation of deflate.c when both ASMV and FASTEST [Oberhumer] |
|||
- Add casts in crc32.c to avoid warnings [Oberhumer] |
|||
- Add contrib/masmx64 [Vollant] |
|||
- Update contrib/asm586, asm686, masmx86, testzlib, vstudio [Vollant] |
|||
|
|||
Changes in 1.2.2.2 (30 December 2004) |
|||
- Replace structure assignments in deflate.c and inflate.c with zmemcpy to |
|||
avoid implicit memcpy calls (portability for no-library compilation) |
|||
- Increase sprintf() buffer size in gzdopen() to allow for large numbers |
|||
- Add INFLATE_STRICT to check distances against zlib header |
|||
- Improve WinCE errno handling and comments [Chang] |
|||
- Remove comment about no gzip header processing in FAQ |
|||
- Add Z_FIXED strategy option to deflateInit2() to force fixed trees |
|||
- Add updated make_vms.com [Coghlan], update README |
|||
- Create a new "examples" directory, move gzappend.c there, add zpipe.c, |
|||
fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html. |
|||
- Add FAQ entry and comments in deflate.c on uninitialized memory access |
|||
- Add Solaris 9 make options in configure [Gilbert] |
|||
- Allow strerror() usage in gzio.c for STDC |
|||
- Fix DecompressBuf in contrib/delphi/ZLib.pas [ManChesTer] |
|||
- Update contrib/masmx86/inffas32.asm and gvmat32.asm [Vollant] |
|||
- Use z_off_t for adler32_combine() and crc32_combine() lengths |
|||
- Make adler32() much faster for small len |
|||
- Use OS_CODE in deflate() default gzip header |
|||
|
|||
Changes in 1.2.2.1 (31 October 2004) |
|||
- Allow inflateSetDictionary() call for raw inflate |
|||
- Fix inflate header crc check bug for file names and comments |
|||
- Add deflateSetHeader() and gz_header structure for custom gzip headers |
|||
- Add inflateGetheader() to retrieve gzip headers |
|||
- Add crc32_combine() and adler32_combine() functions |
|||
- Add alloc_func, free_func, in_func, out_func to Z_PREFIX list |
|||
- Use zstreamp consistently in zlib.h (inflate_back functions) |
|||
- Remove GUNZIP condition from definition of inflate_mode in inflate.h |
|||
and in contrib/inflate86/inffast.S [Truta, Anderson] |
|||
- Add support for AMD64 in contrib/inflate86/inffas86.c [Anderson] |
|||
- Update projects/README.projects and projects/visualc6 [Truta] |
|||
- Update win32/DLL_FAQ.txt [Truta] |
|||
- Avoid warning under NO_GZCOMPRESS in gzio.c; fix typo [Truta] |
|||
- Deprecate Z_ASCII; use Z_TEXT instead [Truta] |
|||
- Use a new algorithm for setting strm->data_type in trees.c [Truta] |
|||
- Do not define an exit() prototype in zutil.c unless DEBUG defined |
|||
- Remove prototype of exit() from zutil.c, example.c, minigzip.c [Truta] |
|||
- Add comment in zlib.h for Z_NO_FLUSH parameter to deflate() |
|||
- Fix Darwin build version identification [Peterson] |
|||
|
|||
Changes in 1.2.2 (3 October 2004) |
|||
- Update zlib.h comments on gzip in-memory processing |
|||
- Set adler to 1 in inflateReset() to support Java test suite [Walles] |
|||
- Add contrib/dotzlib [Ravn] |
|||
- Update win32/DLL_FAQ.txt [Truta] |
|||
- Update contrib/minizip [Vollant] |
|||
- Move contrib/visual-basic.txt to old/ [Truta] |
|||
- Fix assembler builds in projects/visualc6/ [Truta] |
|||
|
|||
Changes in 1.2.1.2 (9 September 2004) |
|||
- Update INDEX file |
|||
- Fix trees.c to update strm->data_type (no one ever noticed!) |
|||
- Fix bug in error case in inflate.c, infback.c, and infback9.c [Brown] |
|||
- Add "volatile" to crc table flag declaration (for DYNAMIC_CRC_TABLE) |
|||
- Add limited multitasking protection to DYNAMIC_CRC_TABLE |
|||
- Add NO_vsnprintf for VMS in zutil.h [Mozilla] |
|||
- Don't declare strerror() under VMS [Mozilla] |
|||
- Add comment to DYNAMIC_CRC_TABLE to use get_crc_table() to initialize |
|||
- Update contrib/ada [Anisimkov] |
|||
- Update contrib/minizip [Vollant] |
|||
- Fix configure to not hardcode directories for Darwin [Peterson] |
|||
- Fix gzio.c to not return error on empty files [Brown] |
|||
- Fix indentation; update version in contrib/delphi/ZLib.pas and |
|||
contrib/pascal/zlibpas.pas [Truta] |
|||
- Update mkasm.bat in contrib/masmx86 [Truta] |
|||
- Update contrib/untgz [Truta] |
|||
- Add projects/README.projects [Truta] |
|||
- Add project for MS Visual C++ 6.0 in projects/visualc6 [Cadieux, Truta] |
|||
- Update win32/DLL_FAQ.txt [Truta] |
|||
- Update list of Z_PREFIX symbols in zconf.h [Randers-Pehrson, Truta] |
|||
- Remove an unnecessary assignment to curr in inftrees.c [Truta] |
|||
- Add OS/2 to exe builds in configure [Poltorak] |
|||
- Remove err dummy parameter in zlib.h [Kientzle] |
|||
|
|||
Changes in 1.2.1.1 (9 January 2004) |
|||
- Update email address in README |
|||
- Several FAQ updates |
|||
- Fix a big fat bug in inftrees.c that prevented decoding valid |
|||
dynamic blocks with only literals and no distance codes -- |
|||
Thanks to "Hot Emu" for the bug report and sample file |
|||
- Add a note to puff.c on no distance codes case. |
|||
|
|||
Changes in 1.2.1 (17 November 2003) |
|||
- Remove a tab in contrib/gzappend/gzappend.c |
|||
- Update some interfaces in contrib for new zlib functions |
|||
- Update zlib version number in some contrib entries |
|||
- Add Windows CE definition for ptrdiff_t in zutil.h [Mai, Truta] |
|||
- Support shared libraries on Hurd and KFreeBSD [Brown] |
|||
- Fix error in NO_DIVIDE option of adler32.c |
|||
|
|||
Changes in 1.2.0.8 (4 November 2003) |
|||
- Update version in contrib/delphi/ZLib.pas and contrib/pascal/zlibpas.pas |
|||
- Add experimental NO_DIVIDE #define in adler32.c |
|||
- Possibly faster on some processors (let me know if it is) |
|||
- Correct Z_BLOCK to not return on first inflate call if no wrap |
|||
- Fix strm->data_type on inflate() return to correctly indicate EOB |
|||
- Add deflatePrime() function for appending in the middle of a byte |
|||
- Add contrib/gzappend for an example of appending to a stream |
|||
- Update win32/DLL_FAQ.txt [Truta] |
|||
- Delete Turbo C comment in README [Truta] |
|||
- Improve some indentation in zconf.h [Truta] |
|||
- Fix infinite loop on bad input in configure script [Church] |
|||
- Fix gzeof() for concatenated gzip files [Johnson] |
|||
- Add example to contrib/visual-basic.txt [Michael B.] |
|||
- Add -p to mkdir's in Makefile.in [vda] |
|||
- Fix configure to properly detect presence or lack of printf functions |
|||
- Add AS400 support [Monnerat] |
|||
- Add a little Cygwin support [Wilson] |
|||
|
|||
Changes in 1.2.0.7 (21 September 2003) |
|||
- Correct some debug formats in contrib/infback9 |
|||
- Cast a type in a debug statement in trees.c |
|||
- Change search and replace delimiter in configure from % to # [Beebe] |
|||
- Update contrib/untgz to 0.2 with various fixes [Truta] |
|||
- Add build support for Amiga [Nikl] |
|||
- Remove some directories in old that have been updated to 1.2 |
|||
- Add dylib building for Mac OS X in configure and Makefile.in |
|||
- Remove old distribution stuff from Makefile |
|||
- Update README to point to DLL_FAQ.txt, and add comment on Mac OS X |
|||
- Update links in README |
|||
|
|||
Changes in 1.2.0.6 (13 September 2003) |
|||
- Minor FAQ updates |
|||
- Update contrib/minizip to 1.00 [Vollant] |
|||
- Remove test of gz functions in example.c when GZ_COMPRESS defined [Truta] |
|||
- Update POSTINC comment for 68060 [Nikl] |
|||
- Add contrib/infback9 with deflate64 decoding (unsupported) |
|||
- For MVS define NO_vsnprintf and undefine FAR [van Burik] |
|||
- Add pragma for fdopen on MVS [van Burik] |
|||
|
|||
Changes in 1.2.0.5 (8 September 2003) |
|||
- Add OF to inflateBackEnd() declaration in zlib.h |
|||
- Remember start when using gzdopen in the middle of a file |
|||
- Use internal off_t counters in gz* functions to properly handle seeks |
|||
- Perform more rigorous check for distance-too-far in inffast.c |
|||
- Add Z_BLOCK flush option to return from inflate at block boundary |
|||
- Set strm->data_type on return from inflate |
|||
- Indicate bits unused, if at block boundary, and if in last block |
|||
- Replace size_t with ptrdiff_t in crc32.c, and check for correct size |
|||
- Add condition so old NO_DEFLATE define still works for compatibility |
|||
- FAQ update regarding the Windows DLL [Truta] |
|||
- INDEX update: add qnx entry, remove aix entry [Truta] |
|||
- Install zlib.3 into mandir [Wilson] |
|||
- Move contrib/zlib_dll_FAQ.txt to win32/DLL_FAQ.txt; update [Truta] |
|||
- Adapt the zlib interface to the new DLL convention guidelines [Truta] |
|||
- Introduce ZLIB_WINAPI macro to allow the export of functions using |
|||
the WINAPI calling convention, for Visual Basic [Vollant, Truta] |
|||
- Update msdos and win32 scripts and makefiles [Truta] |
|||
- Export symbols by name, not by ordinal, in win32/zlib.def [Truta] |
|||
- Add contrib/ada [Anisimkov] |
|||
- Move asm files from contrib/vstudio/vc70_32 to contrib/asm386 [Truta] |
|||
- Rename contrib/asm386 to contrib/masmx86 [Truta, Vollant] |
|||
- Add contrib/masm686 [Truta] |
|||
- Fix offsets in contrib/inflate86 and contrib/masmx86/inffas32.asm |
|||
[Truta, Vollant] |
|||
- Update contrib/delphi; rename to contrib/pascal; add example [Truta] |
|||
- Remove contrib/delphi2; add a new contrib/delphi [Truta] |
|||
- Avoid inclusion of the nonstandard <memory.h> in contrib/iostream, |
|||
and fix some method prototypes [Truta] |
|||
- Fix the ZCR_SEED2 constant to avoid warnings in contrib/minizip |
|||
[Truta] |
|||
- Avoid the use of backslash (\) in contrib/minizip [Vollant] |
|||
- Fix file time handling in contrib/untgz; update makefiles [Truta] |
|||
- Update contrib/vstudio/vc70_32 to comply with the new DLL guidelines |
|||
[Vollant] |
|||
- Remove contrib/vstudio/vc15_16 [Vollant] |
|||
- Rename contrib/vstudio/vc70_32 to contrib/vstudio/vc7 [Truta] |
|||
- Update README.contrib [Truta] |
|||
- Invert the assignment order of match_head and s->prev[...] in |
|||
INSERT_STRING [Truta] |
|||
- Compare TOO_FAR with 32767 instead of 32768, to avoid 16-bit warnings |
|||
[Truta] |
|||
- Compare function pointers with 0, not with NULL or Z_NULL [Truta] |
|||
- Fix prototype of syncsearch in inflate.c [Truta] |
|||
- Introduce ASMINF macro to be enabled when using an ASM implementation |
|||
of inflate_fast [Truta] |
|||
- Change NO_DEFLATE to NO_GZCOMPRESS [Truta] |
|||
- Modify test_gzio in example.c to take a single file name as a |
|||
parameter [Truta] |
|||
- Exit the example.c program if gzopen fails [Truta] |
|||
- Add type casts around strlen in example.c [Truta] |
|||
- Remove casting to sizeof in minigzip.c; give a proper type |
|||
to the variable compared with SUFFIX_LEN [Truta] |
|||
- Update definitions of STDC and STDC99 in zconf.h [Truta] |
|||
- Synchronize zconf.h with the new Windows DLL interface [Truta] |
|||
- Use SYS16BIT instead of __32BIT__ to distinguish between |
|||
16- and 32-bit platforms [Truta] |
|||
- Use far memory allocators in small 16-bit memory models for |
|||
Turbo C [Truta] |
|||
- Add info about the use of ASMV, ASMINF and ZLIB_WINAPI in |
|||
zlibCompileFlags [Truta] |
|||
- Cygwin has vsnprintf [Wilson] |
|||
- In Windows16, OS_CODE is 0, as in MSDOS [Truta] |
|||
- In Cygwin, OS_CODE is 3 (Unix), not 11 (Windows32) [Wilson] |
|||
|
|||
Changes in 1.2.0.4 (10 August 2003) |
|||
- Minor FAQ updates |
|||
- Be more strict when checking inflateInit2's windowBits parameter |
|||
- Change NO_GUNZIP compile option to NO_GZIP to cover deflate as well |
|||
- Add gzip wrapper option to deflateInit2 using windowBits |
|||
- Add updated QNX rule in configure and qnx directory [Bonnefoy] |
|||
- Make inflate distance-too-far checks more rigorous |
|||
- Clean up FAR usage in inflate |
|||
- Add casting to sizeof() in gzio.c and minigzip.c |
|||
|
|||
Changes in 1.2.0.3 (19 July 2003) |
|||
- Fix silly error in gzungetc() implementation [Vollant] |
|||
- Update contrib/minizip and contrib/vstudio [Vollant] |
|||
- Fix printf format in example.c |
|||
- Correct cdecl support in zconf.in.h [Anisimkov] |
|||
- Minor FAQ updates |
|||
|
|||
Changes in 1.2.0.2 (13 July 2003) |
|||
- Add ZLIB_VERNUM in zlib.h for numerical preprocessor comparisons |
|||
- Attempt to avoid warnings in crc32.c for pointer-int conversion |
|||
- Add AIX to configure, remove aix directory [Bakker] |
|||
- Add some casts to minigzip.c |
|||
- Improve checking after insecure sprintf() or vsprintf() calls |
|||
- Remove #elif's from crc32.c |
|||
- Change leave label to inf_leave in inflate.c and infback.c to avoid |
|||
library conflicts |
|||
- Remove inflate gzip decoding by default--only enable gzip decoding by |
|||
special request for stricter backward compatibility |
|||
- Add zlibCompileFlags() function to return compilation information |
|||
- More typecasting in deflate.c to avoid warnings |
|||
- Remove leading underscore from _Capital #defines [Truta] |
|||
- Fix configure to link shared library when testing |
|||
- Add some Windows CE target adjustments [Mai] |
|||
- Remove #define ZLIB_DLL in zconf.h [Vollant] |
|||
- Add zlib.3 [Rodgers] |
|||
- Update RFC URL in deflate.c and algorithm.txt [Mai] |
|||
- Add zlib_dll_FAQ.txt to contrib [Truta] |
|||
- Add UL to some constants [Truta] |
|||
- Update minizip and vstudio [Vollant] |
|||
- Remove vestigial NEED_DUMMY_RETURN from zconf.in.h |
|||
- Expand use of NO_DUMMY_DECL to avoid all dummy structures |
|||
- Added iostream3 to contrib [Schwardt] |
|||
- Replace rewind() with fseek() for WinCE [Truta] |
|||
- Improve setting of zlib format compression level flags |
|||
- Report 0 for huffman and rle strategies and for level == 0 or 1 |
|||
- Report 2 only for level == 6 |
|||
- Only deal with 64K limit when necessary at compile time [Truta] |
|||
- Allow TOO_FAR check to be turned off at compile time [Truta] |
|||
- Add gzclearerr() function [Souza] |
|||
- Add gzungetc() function |
|||
|
|||
Changes in 1.2.0.1 (17 March 2003) |
|||
- Add Z_RLE strategy for run-length encoding [Truta] |
|||
- When Z_RLE requested, restrict matches to distance one |
|||
- Update zlib.h, minigzip.c, gzopen(), gzdopen() for Z_RLE |
|||
- Correct FASTEST compilation to allow level == 0 |
|||
- Clean up what gets compiled for FASTEST |
|||
- Incorporate changes to zconf.in.h [Vollant] |
|||
- Refine detection of Turbo C need for dummy returns |
|||
- Refine ZLIB_DLL compilation |
|||
- Include additional header file on VMS for off_t typedef |
|||
- Try to use _vsnprintf where it supplants vsprintf [Vollant] |
|||
- Add some casts in inffast.c |
|||
- Enchance comments in zlib.h on what happens if gzprintf() tries to |
|||
write more than 4095 bytes before compression |
|||
- Remove unused state from inflateBackEnd() |
|||
- Remove exit(0) from minigzip.c, example.c |
|||
- Get rid of all those darn tabs |
|||
- Add "check" target to Makefile.in that does the same thing as "test" |
|||
- Add "mostlyclean" and "maintainer-clean" targets to Makefile.in |
|||
- Update contrib/inflate86 [Anderson] |
|||
- Update contrib/testzlib, contrib/vstudio, contrib/minizip [Vollant] |
|||
- Add msdos and win32 directories with makefiles [Truta] |
|||
- More additions and improvements to the FAQ |
|||
|
|||
Changes in 1.2.0 (9 March 2003) |
|||
- New and improved inflate code |
|||
- About 20% faster |
|||
- Does not allocate 32K window unless and until needed |
|||
- Automatically detects and decompresses gzip streams |
|||
- Raw inflate no longer needs an extra dummy byte at end |
|||
- Added inflateBack functions using a callback interface--even faster |
|||
than inflate, useful for file utilities (gzip, zip) |
|||
- Added inflateCopy() function to record state for random access on |
|||
externally generated deflate streams (e.g. in gzip files) |
|||
- More readable code (I hope) |
|||
- New and improved crc32() |
|||
- About 50% faster, thanks to suggestions from Rodney Brown |
|||
- Add deflateBound() and compressBound() functions |
|||
- Fix memory leak in deflateInit2() |
|||
- Permit setting dictionary for raw deflate (for parallel deflate) |
|||
- Fix const declaration for gzwrite() |
|||
- Check for some malloc() failures in gzio.c |
|||
- Fix bug in gzopen() on single-byte file 0x1f |
|||
- Fix bug in gzread() on concatenated file with 0x1f at end of buffer |
|||
and next buffer doesn't start with 0x8b |
|||
- Fix uncompress() to return Z_DATA_ERROR on truncated input |
|||
- Free memory at end of example.c |
|||
- Remove MAX #define in trees.c (conflicted with some libraries) |
|||
- Fix static const's in deflate.c, gzio.c, and zutil.[ch] |
|||
- Declare malloc() and free() in gzio.c if STDC not defined |
|||
- Use malloc() instead of calloc() in zutil.c if int big enough |
|||
- Define STDC for AIX |
|||
- Add aix/ with approach for compiling shared library on AIX |
|||
- Add HP-UX support for shared libraries in configure |
|||
- Add OpenUNIX support for shared libraries in configure |
|||
- Use $cc instead of gcc to build shared library |
|||
- Make prefix directory if needed when installing |
|||
- Correct Macintosh avoidance of typedef Byte in zconf.h |
|||
- Correct Turbo C memory allocation when under Linux |
|||
- Use libz.a instead of -lz in Makefile (assure use of compiled library) |
|||
- Update configure to check for snprintf or vsnprintf functions and their |
|||
return value, warn during make if using an insecure function |
|||
- Fix configure problem with compile-time knowledge of HAVE_UNISTD_H that |
|||
is lost when library is used--resolution is to build new zconf.h |
|||
- Documentation improvements (in zlib.h): |
|||
- Document raw deflate and inflate |
|||
- Update RFCs URL |
|||
- Point out that zlib and gzip formats are different |
|||
- Note that Z_BUF_ERROR is not fatal |
|||
- Document string limit for gzprintf() and possible buffer overflow |
|||
- Note requirement on avail_out when flushing |
|||
- Note permitted values of flush parameter of inflate() |
|||
- Add some FAQs (and even answers) to the FAQ |
|||
- Add contrib/inflate86/ for x86 faster inflate |
|||
- Add contrib/blast/ for PKWare Data Compression Library decompression |
|||
- Add contrib/puff/ simple inflate for deflate format description |
|||
|
|||
Changes in 1.1.4 (11 March 2002) |
|||
- ZFREE was repeated on same allocation on some error conditions. |
|||
This creates a security problem described in |
|||
http://www.zlib.org/advisory-2002-03-11.txt |
|||
- Returned incorrect error (Z_MEM_ERROR) on some invalid data |
|||
- Avoid accesses before window for invalid distances with inflate window |
|||
less than 32K. |
|||
- force windowBits > 8 to avoid a bug in the encoder for a window size |
|||
of 256 bytes. (A complete fix will be available in 1.1.5). |
|||
|
|||
Changes in 1.1.3 (9 July 1998) |
|||
- fix "an inflate input buffer bug that shows up on rare but persistent |
|||
occasions" (Mark) |
|||
- fix gzread and gztell for concatenated .gz files (Didier Le Botlan) |
|||
- fix gzseek(..., SEEK_SET) in write mode |
|||
- fix crc check after a gzeek (Frank Faubert) |
|||
- fix miniunzip when the last entry in a zip file is itself a zip file |
|||
(J Lillge) |
|||
- add contrib/asm586 and contrib/asm686 (Brian Raiter) |
|||
See http://www.muppetlabs.com/~breadbox/software/assembly.html |
|||
- add support for Delphi 3 in contrib/delphi (Bob Dellaca) |
|||
- add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti) |
|||
- do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren) |
|||
- use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks) |
|||
- added a FAQ file |
|||
|
|||
- Support gzdopen on Mac with Metrowerks (Jason Linhart) |
|||
- Do not redefine Byte on Mac (Brad Pettit & Jason Linhart) |
|||
- define SEEK_END too if SEEK_SET is not defined (Albert Chin-A-Young) |
|||
- avoid some warnings with Borland C (Tom Tanner) |
|||
- fix a problem in contrib/minizip/zip.c for 16-bit MSDOS (Gilles Vollant) |
|||
- emulate utime() for WIN32 in contrib/untgz (Gilles Vollant) |
|||
- allow several arguments to configure (Tim Mooney, Frodo Looijaard) |
|||
- use libdir and includedir in Makefile.in (Tim Mooney) |
|||
- support shared libraries on OSF1 V4 (Tim Mooney) |
|||
- remove so_locations in "make clean" (Tim Mooney) |
|||
- fix maketree.c compilation error (Glenn, Mark) |
|||
- Python interface to zlib now in Python 1.5 (Jeremy Hylton) |
|||
- new Makefile.riscos (Rich Walker) |
|||
- initialize static descriptors in trees.c for embedded targets (Nick Smith) |
|||
- use "foo-gz" in example.c for RISCOS and VMS (Nick Smith) |
|||
- add the OS/2 files in Makefile.in too (Andrew Zabolotny) |
|||
- fix fdopen and halloc macros for Microsoft C 6.0 (Tom Lane) |
|||
- fix maketree.c to allow clean compilation of inffixed.h (Mark) |
|||
- fix parameter check in deflateCopy (Gunther Nikl) |
|||
- cleanup trees.c, use compressed_len only in debug mode (Christian Spieler) |
|||
- Many portability patches by Christian Spieler: |
|||
. zutil.c, zutil.h: added "const" for zmem* |
|||
. Make_vms.com: fixed some typos |
|||
. Make_vms.com: msdos/Makefile.*: removed zutil.h from some dependency lists |
|||
. msdos/Makefile.msc: remove "default rtl link library" info from obj files |
|||
. msdos/Makefile.*: use model-dependent name for the built zlib library |
|||
. msdos/Makefile.emx, nt/Makefile.emx, nt/Makefile.gcc: |
|||
new makefiles, for emx (DOS/OS2), emx&rsxnt and mingw32 (Windows 9x / NT) |
|||
- use define instead of typedef for Bytef also for MSC small/medium (Tom Lane) |
|||
- replace __far with _far for better portability (Christian Spieler, Tom Lane) |
|||
- fix test for errno.h in configure (Tim Newsham) |
|||
|
|||
Changes in 1.1.2 (19 March 98) |
|||
- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant) |
|||
See http://www.winimage.com/zLibDll/unzip.html |
|||
- preinitialize the inflate tables for fixed codes, to make the code |
|||
completely thread safe (Mark) |
|||
- some simplifications and slight speed-up to the inflate code (Mark) |
|||
- fix gzeof on non-compressed files (Allan Schrum) |
|||
- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs) |
|||
- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn) |
|||
- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny) |
|||
- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori) |
|||
- do not wrap extern "C" around system includes (Tom Lane) |
|||
- mention zlib binding for TCL in README (Andreas Kupries) |
|||
- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert) |
|||
- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson) |
|||
- allow "configure --prefix $HOME" (Tim Mooney) |
|||
- remove warnings in example.c and gzio.c (Glenn Randers-Pehrson) |
|||
- move Makefile.sas to amiga/Makefile.sas |
|||
|
|||
Changes in 1.1.1 (27 Feb 98) |
|||
- fix macros _tr_tally_* in deflate.h for debug mode (Glenn Randers-Pehrson) |
|||
- remove block truncation heuristic which had very marginal effect for zlib |
|||
(smaller lit_bufsize than in gzip 1.2.4) and degraded a little the |
|||
compression ratio on some files. This also allows inlining _tr_tally for |
|||
matches in deflate_slow. |
|||
- added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier) |
|||
|
|||
Changes in 1.1.0 (24 Feb 98) |
|||
- do not return STREAM_END prematurely in inflate (John Bowler) |
|||
- revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler) |
|||
- compile with -DFASTEST to get compression code optimized for speed only |
|||
- in minigzip, try mmap'ing the input file first (Miguel Albrecht) |
|||
- increase size of I/O buffers in minigzip.c and gzio.c (not a big gain |
|||
on Sun but significant on HP) |
|||
|
|||
- add a pointer to experimental unzip library in README (Gilles Vollant) |
|||
- initialize variable gcc in configure (Chris Herborth) |
|||
|
|||
Changes in 1.0.9 (17 Feb 1998) |
|||
- added gzputs and gzgets functions |
|||
- do not clear eof flag in gzseek (Mark Diekhans) |
|||
- fix gzseek for files in transparent mode (Mark Diekhans) |
|||
- do not assume that vsprintf returns the number of bytes written (Jens Krinke) |
|||
- replace EXPORT with ZEXPORT to avoid conflict with other programs |
|||
- added compress2 in zconf.h, zlib.def, zlib.dnt |
|||
- new asm code from Gilles Vollant in contrib/asm386 |
|||
- simplify the inflate code (Mark): |
|||
. Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new() |
|||
. ZALLOC the length list in inflate_trees_fixed() instead of using stack |
|||
. ZALLOC the value area for huft_build() instead of using stack |
|||
. Simplify Z_FINISH check in inflate() |
|||
|
|||
- Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8 |
|||
- in inftrees.c, avoid cc -O bug on HP (Farshid Elahi) |
|||
- in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with |
|||
the declaration of FAR (Gilles VOllant) |
|||
- install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann) |
|||
- read_buf buf parameter of type Bytef* instead of charf* |
|||
- zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout) |
|||
- do not redeclare unlink in minigzip.c for WIN32 (John Bowler) |
|||
- fix check for presence of directories in "make install" (Ian Willis) |
|||
|
|||
Changes in 1.0.8 (27 Jan 1998) |
|||
- fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant) |
|||
- fix gzgetc and gzputc for big endian systems (Markus Oberhumer) |
|||
- added compress2() to allow setting the compression level |
|||
- include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong) |
|||
- use constant arrays for the static trees in trees.c instead of computing |
|||
them at run time (thanks to Ken Raeburn for this suggestion). To create |
|||
trees.h, compile with GEN_TREES_H and run "make test". |
|||
- check return code of example in "make test" and display result |
|||
- pass minigzip command line options to file_compress |
|||
- simplifying code of inflateSync to avoid gcc 2.8 bug |
|||
|
|||
- support CC="gcc -Wall" in configure -s (QingLong) |
|||
- avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn) |
|||
- fix test for shared library support to avoid compiler warnings |
|||
- zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant) |
|||
- check for TARGET_OS_MAC in addition to MACOS (Brad Pettit) |
|||
- do not use fdopen for Metrowerks on Mac (Brad Pettit)) |
|||
- add checks for gzputc and gzputc in example.c |
|||
- avoid warnings in gzio.c and deflate.c (Andreas Kleinert) |
|||
- use const for the CRC table (Ken Raeburn) |
|||
- fixed "make uninstall" for shared libraries |
|||
- use Tracev instead of Trace in infblock.c |
|||
- in example.c use correct compressed length for test_sync |
|||
- suppress +vnocompatwarnings in configure for HPUX (not always supported) |
|||
|
|||
Changes in 1.0.7 (20 Jan 1998) |
|||
- fix gzseek which was broken in write mode |
|||
- return error for gzseek to negative absolute position |
|||
- fix configure for Linux (Chun-Chung Chen) |
|||
- increase stack space for MSC (Tim Wegner) |
|||
- get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant) |
|||
- define EXPORTVA for gzprintf (Gilles Vollant) |
|||
- added man page zlib.3 (Rick Rodgers) |
|||
- for contrib/untgz, fix makedir() and improve Makefile |
|||
|
|||
- check gzseek in write mode in example.c |
|||
- allocate extra buffer for seeks only if gzseek is actually called |
|||
- avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant) |
|||
- add inflateSyncPoint in zconf.h |
|||
- fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def |
|||
|
|||
Changes in 1.0.6 (19 Jan 1998) |
|||
- add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and |
|||
gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code) |
|||
- Fix a deflate bug occurring only with compression level 0 (thanks to |
|||
Andy Buckler for finding this one). |
|||
- In minigzip, pass transparently also the first byte for .Z files. |
|||
- return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress() |
|||
- check Z_FINISH in inflate (thanks to Marc Schluper) |
|||
- Implement deflateCopy (thanks to Adam Costello) |
|||
- make static libraries by default in configure, add --shared option. |
|||
- move MSDOS or Windows specific files to directory msdos |
|||
- suppress the notion of partial flush to simplify the interface |
|||
(but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4) |
|||
- suppress history buffer provided by application to simplify the interface |
|||
(this feature was not implemented anyway in 1.0.4) |
|||
- next_in and avail_in must be initialized before calling inflateInit or |
|||
inflateInit2 |
|||
- add EXPORT in all exported functions (for Windows DLL) |
|||
- added Makefile.nt (thanks to Stephen Williams) |
|||
- added the unsupported "contrib" directory: |
|||
contrib/asm386/ by Gilles Vollant <info@winimage.com> |
|||
386 asm code replacing longest_match(). |
|||
contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu> |
|||
A C++ I/O streams interface to the zlib gz* functions |
|||
contrib/iostream2/ by Tyge Løvset <Tyge.Lovset@cmr.no> |
|||
Another C++ I/O streams interface |
|||
contrib/untgz/ by "Pedro A. Aranda Guti\irrez" <paag@tid.es> |
|||
A very simple tar.gz file extractor using zlib |
|||
contrib/visual-basic.txt by Carlos Rios <c_rios@sonda.cl> |
|||
How to use compress(), uncompress() and the gz* functions from VB. |
|||
- pass params -f (filtered data), -h (huffman only), -1 to -9 (compression |
|||
level) in minigzip (thanks to Tom Lane) |
|||
|
|||
- use const for rommable constants in deflate |
|||
- added test for gzseek and gztell in example.c |
|||
- add undocumented function inflateSyncPoint() (hack for Paul Mackerras) |
|||
- add undocumented function zError to convert error code to string |
|||
(for Tim Smithers) |
|||
- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code. |
|||
- Use default memcpy for Symantec MSDOS compiler. |
|||
- Add EXPORT keyword for check_func (needed for Windows DLL) |
|||
- add current directory to LD_LIBRARY_PATH for "make test" |
|||
- create also a link for libz.so.1 |
|||
- added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura) |
|||
- use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX) |
|||
- added -soname for Linux in configure (Chun-Chung Chen, |
|||
- assign numbers to the exported functions in zlib.def (for Windows DLL) |
|||
- add advice in zlib.h for best usage of deflateSetDictionary |
|||
- work around compiler bug on Atari (cast Z_NULL in call of s->checkfn) |
|||
- allow compilation with ANSI keywords only enabled for TurboC in large model |
|||
- avoid "versionString"[0] (Borland bug) |
|||
- add NEED_DUMMY_RETURN for Borland |
|||
- use variable z_verbose for tracing in debug mode (L. Peter Deutsch). |
|||
- allow compilation with CC |
|||
- defined STDC for OS/2 (David Charlap) |
|||
- limit external names to 8 chars for MVS (Thomas Lund) |
|||
- in minigzip.c, use static buffers only for 16-bit systems |
|||
- fix suffix check for "minigzip -d foo.gz" |
|||
- do not return an error for the 2nd of two consecutive gzflush() (Felix Lee) |
|||
- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) |
|||
- added makelcc.bat for lcc-win32 (Tom St Denis) |
|||
- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) |
|||
- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion. |
|||
- check for unistd.h in configure (for off_t) |
|||
- remove useless check parameter in inflate_blocks_free |
|||
- avoid useless assignment of s->check to itself in inflate_blocks_new |
|||
- do not flush twice in gzclose (thanks to Ken Raeburn) |
|||
- rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h |
|||
- use NO_ERRNO_H instead of enumeration of operating systems with errno.h |
|||
- work around buggy fclose on pipes for HP/UX |
|||
- support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson) |
|||
- fix configure if CC is already equal to gcc |
|||
|
|||
Changes in 1.0.5 (3 Jan 98) |
|||
- Fix inflate to terminate gracefully when fed corrupted or invalid data |
|||
- Use const for rommable constants in inflate |
|||
- Eliminate memory leaks on error conditions in inflate |
|||
- Removed some vestigial code in inflate |
|||
- Update web address in README |
|||
|
|||
Changes in 1.0.4 (24 Jul 96) |
|||
- In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF |
|||
bit, so the decompressor could decompress all the correct data but went |
|||
on to attempt decompressing extra garbage data. This affected minigzip too. |
|||
- zlibVersion and gzerror return const char* (needed for DLL) |
|||
- port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno) |
|||
- use z_error only for DEBUG (avoid problem with DLLs) |
|||
|
|||
Changes in 1.0.3 (2 Jul 96) |
|||
- use z_streamp instead of z_stream *, which is now a far pointer in MSDOS |
|||
small and medium models; this makes the library incompatible with previous |
|||
versions for these models. (No effect in large model or on other systems.) |
|||
- return OK instead of BUF_ERROR if previous deflate call returned with |
|||
avail_out as zero but there is nothing to do |
|||
- added memcmp for non STDC compilers |
|||
- define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly) |
|||
- define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO) |
|||
- better check for 16-bit mode MSC (avoids problem with Symantec) |
|||
|
|||
Changes in 1.0.2 (23 May 96) |
|||
- added Windows DLL support |
|||
- added a function zlibVersion (for the DLL support) |
|||
- fixed declarations using Bytef in infutil.c (pb with MSDOS medium model) |
|||
- Bytef is define's instead of typedef'd only for Borland C |
|||
- avoid reading uninitialized memory in example.c |
|||
- mention in README that the zlib format is now RFC1950 |
|||
- updated Makefile.dj2 |
|||
- added algorithm.doc |
|||
|
|||
Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion] |
|||
- fix array overlay in deflate.c which sometimes caused bad compressed data |
|||
- fix inflate bug with empty stored block |
|||
- fix MSDOS medium model which was broken in 0.99 |
|||
- fix deflateParams() which could generated bad compressed data. |
|||
- Bytef is define'd instead of typedef'ed (work around Borland bug) |
|||
- added an INDEX file |
|||
- new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32), |
|||
Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas) |
|||
- speed up adler32 for modern machines without auto-increment |
|||
- added -ansi for IRIX in configure |
|||
- static_init_done in trees.c is an int |
|||
- define unlink as delete for VMS |
|||
- fix configure for QNX |
|||
- add configure branch for SCO and HPUX |
|||
- avoid many warnings (unused variables, dead assignments, etc...) |
|||
- no fdopen for BeOS |
|||
- fix the Watcom fix for 32 bit mode (define FAR as empty) |
|||
- removed redefinition of Byte for MKWERKS |
|||
- work around an MWKERKS bug (incorrect merge of all .h files) |
|||
|
|||
Changes in 0.99 (27 Jan 96) |
|||
- allow preset dictionary shared between compressor and decompressor |
|||
- allow compression level 0 (no compression) |
|||
- add deflateParams in zlib.h: allow dynamic change of compression level |
|||
and compression strategy. |
|||
- test large buffers and deflateParams in example.c |
|||
- add optional "configure" to build zlib as a shared library |
|||
- suppress Makefile.qnx, use configure instead |
|||
- fixed deflate for 64-bit systems (detected on Cray) |
|||
- fixed inflate_blocks for 64-bit systems (detected on Alpha) |
|||
- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2) |
|||
- always return Z_BUF_ERROR when deflate() has nothing to do |
|||
- deflateInit and inflateInit are now macros to allow version checking |
|||
- prefix all global functions and types with z_ with -DZ_PREFIX |
|||
- make falloc completely reentrant (inftrees.c) |
|||
- fixed very unlikely race condition in ct_static_init |
|||
- free in reverse order of allocation to help memory manager |
|||
- use zlib-1.0/* instead of zlib/* inside the tar.gz |
|||
- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith |
|||
-Wconversion -Wstrict-prototypes -Wmissing-prototypes" |
|||
- allow gzread on concatenated .gz files |
|||
- deflateEnd now returns Z_DATA_ERROR if it was premature |
|||
- deflate is finally (?) fully deterministic (no matches beyond end of input) |
|||
- Document Z_SYNC_FLUSH |
|||
- add uninstall in Makefile |
|||
- Check for __cpluplus in zlib.h |
|||
- Better test in ct_align for partial flush |
|||
- avoid harmless warnings for Borland C++ |
|||
- initialize hash_head in deflate.c |
|||
- avoid warning on fdopen (gzio.c) for HP cc -Aa |
|||
- include stdlib.h for STDC compilers |
|||
- include errno.h for Cray |
|||
- ignore error if ranlib doesn't exist |
|||
- call ranlib twice for NeXTSTEP |
|||
- use exec_prefix instead of prefix for libz.a |
|||
- renamed ct_* as _tr_* to avoid conflict with applications |
|||
- clear z->msg in inflateInit2 before any error return |
|||
- initialize opaque in example.c, gzio.c, deflate.c and inflate.c |
|||
- fixed typo in zconf.h (_GNUC__ => __GNUC__) |
|||
- check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode) |
|||
- fix typo in Make_vms.com (f$trnlnm -> f$getsyi) |
|||
- in fcalloc, normalize pointer if size > 65520 bytes |
|||
- don't use special fcalloc for 32 bit Borland C++ |
|||
- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc... |
|||
- use Z_BINARY instead of BINARY |
|||
- document that gzclose after gzdopen will close the file |
|||
- allow "a" as mode in gzopen. |
|||
- fix error checking in gzread |
|||
- allow skipping .gz extra-field on pipes |
|||
- added reference to Perl interface in README |
|||
- put the crc table in FAR data (I dislike more and more the medium model :) |
|||
- added get_crc_table |
|||
- added a dimension to all arrays (Borland C can't count). |
|||
- workaround Borland C bug in declaration of inflate_codes_new & inflate_fast |
|||
- guard against multiple inclusion of *.h (for precompiled header on Mac) |
|||
- Watcom C pretends to be Microsoft C small model even in 32 bit mode. |
|||
- don't use unsized arrays to avoid silly warnings by Visual C++: |
|||
warning C4746: 'inflate_mask' : unsized array treated as '__far' |
|||
(what's wrong with far data in far model?). |
|||
- define enum out of inflate_blocks_state to allow compilation with C++ |
|||
|
|||
Changes in 0.95 (16 Aug 95) |
|||
- fix MSDOS small and medium model (now easier to adapt to any compiler) |
|||
- inlined send_bits |
|||
- fix the final (:-) bug for deflate with flush (output was correct but |
|||
not completely flushed in rare occasions). |
|||
- default window size is same for compression and decompression |
|||
(it's now sufficient to set MAX_WBITS in zconf.h). |
|||
- voidp -> voidpf and voidnp -> voidp (for consistency with other |
|||
typedefs and because voidnp was not near in large model). |
|||
|
|||
Changes in 0.94 (13 Aug 95) |
|||
- support MSDOS medium model |
|||
- fix deflate with flush (could sometimes generate bad output) |
|||
- fix deflateReset (zlib header was incorrectly suppressed) |
|||
- added support for VMS |
|||
- allow a compression level in gzopen() |
|||
- gzflush now calls fflush |
|||
- For deflate with flush, flush even if no more input is provided. |
|||
- rename libgz.a as libz.a |
|||
- avoid complex expression in infcodes.c triggering Turbo C bug |
|||
- work around a problem with gcc on Alpha (in INSERT_STRING) |
|||
- don't use inline functions (problem with some gcc versions) |
|||
- allow renaming of Byte, uInt, etc... with #define. |
|||
- avoid warning about (unused) pointer before start of array in deflate.c |
|||
- avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c |
|||
- avoid reserved word 'new' in trees.c |
|||
|
|||
Changes in 0.93 (25 June 95) |
|||
- temporarily disable inline functions |
|||
- make deflate deterministic |
|||
- give enough lookahead for PARTIAL_FLUSH |
|||
- Set binary mode for stdin/stdout in minigzip.c for OS/2 |
|||
- don't even use signed char in inflate (not portable enough) |
|||
- fix inflate memory leak for segmented architectures |
|||
|
|||
Changes in 0.92 (3 May 95) |
|||
- don't assume that char is signed (problem on SGI) |
|||
- Clear bit buffer when starting a stored block |
|||
- no memcpy on Pyramid |
|||
- suppressed inftest.c |
|||
- optimized fill_window, put longest_match inline for gcc |
|||
- optimized inflate on stored blocks. |
|||
- untabify all sources to simplify patches |
|||
|
|||
Changes in 0.91 (2 May 95) |
|||
- Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h |
|||
- Document the memory requirements in zconf.h |
|||
- added "make install" |
|||
- fix sync search logic in inflateSync |
|||
- deflate(Z_FULL_FLUSH) now works even if output buffer too short |
|||
- after inflateSync, don't scare people with just "lo world" |
|||
- added support for DJGPP |
|||
|
|||
Changes in 0.9 (1 May 95) |
|||
- don't assume that zalloc clears the allocated memory (the TurboC bug |
|||
was Mark's bug after all :) |
|||
- let again gzread copy uncompressed data unchanged (was working in 0.71) |
|||
- deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented |
|||
- added a test of inflateSync in example.c |
|||
- moved MAX_WBITS to zconf.h because users might want to change that. |
|||
- document explicitly that zalloc(64K) on MSDOS must return a normalized |
|||
pointer (zero offset) |
|||
- added Makefiles for Microsoft C, Turbo C, Borland C++ |
|||
- faster crc32() |
|||
|
|||
Changes in 0.8 (29 April 95) |
|||
- added fast inflate (inffast.c) |
|||
- deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this |
|||
is incompatible with previous versions of zlib which returned Z_OK. |
|||
- work around a TurboC compiler bug (bad code for b << 0, see infutil.h) |
|||
(actually that was not a compiler bug, see 0.81 above) |
|||
- gzread no longer reads one extra byte in certain cases |
|||
- In gzio destroy(), don't reference a freed structure |
|||
- avoid many warnings for MSDOS |
|||
- avoid the ERROR symbol which is used by MS Windows |
|||
|
|||
Changes in 0.71 (14 April 95) |
|||
- Fixed more MSDOS compilation problems :( There is still a bug with |
|||
TurboC large model. |
|||
|
|||
Changes in 0.7 (14 April 95) |
|||
- Added full inflate support. |
|||
- Simplified the crc32() interface. The pre- and post-conditioning |
|||
(one's complement) is now done inside crc32(). WARNING: this is |
|||
incompatible with previous versions; see zlib.h for the new usage. |
|||
|
|||
Changes in 0.61 (12 April 95) |
|||
- workaround for a bug in TurboC. example and minigzip now work on MSDOS. |
|||
|
|||
Changes in 0.6 (11 April 95) |
|||
- added minigzip.c |
|||
- added gzdopen to reopen a file descriptor as gzFile |
|||
- added transparent reading of non-gziped files in gzread. |
|||
- fixed bug in gzread (don't read crc as data) |
|||
- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose). |
|||
- don't allocate big arrays in the stack (for MSDOS) |
|||
- fix some MSDOS compilation problems |
|||
|
|||
Changes in 0.5: |
|||
- do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but |
|||
not yet Z_FULL_FLUSH. |
|||
- support decompression but only in a single step (forced Z_FINISH) |
|||
- added opaque object for zalloc and zfree. |
|||
- added deflateReset and inflateReset |
|||
- added a variable zlib_version for consistency checking. |
|||
- renamed the 'filter' parameter of deflateInit2 as 'strategy'. |
|||
Added Z_FILTERED and Z_HUFFMAN_ONLY constants. |
|||
|
|||
Changes in 0.4: |
|||
- avoid "zip" everywhere, use zlib instead of ziplib. |
|||
- suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush |
|||
if compression method == 8. |
|||
- added adler32 and crc32 |
|||
- renamed deflateOptions as deflateInit2, call one or the other but not both |
|||
- added the method parameter for deflateInit2. |
|||
- added inflateInit2 |
|||
- simplied considerably deflateInit and inflateInit by not supporting |
|||
user-provided history buffer. This is supported only in deflateInit2 |
|||
and inflateInit2. |
|||
|
|||
Changes in 0.3: |
|||
- prefix all macro names with Z_ |
|||
- use Z_FINISH instead of deflateEnd to finish compression. |
|||
- added Z_HUFFMAN_ONLY |
|||
- added gzerror() |
|||
@ -1,159 +0,0 @@ |
|||
.TH ZLIB 3 "18 July 2005" |
|||
.SH NAME |
|||
zlib \- compression/decompression library |
|||
.SH SYNOPSIS |
|||
[see |
|||
.I zlib.h |
|||
for full description] |
|||
.SH DESCRIPTION |
|||
The |
|||
.I zlib |
|||
library is a general purpose data compression library. |
|||
The code is thread safe. |
|||
It provides in-memory compression and decompression functions, |
|||
including integrity checks of the uncompressed data. |
|||
This version of the library supports only one compression method (deflation) |
|||
but other algorithms will be added later |
|||
and will have the same stream interface. |
|||
.LP |
|||
Compression can be done in a single step if the buffers are large enough |
|||
(for example if an input file is mmap'ed), |
|||
or can be done by repeated calls of the compression function. |
|||
In the latter case, |
|||
the application must provide more input and/or consume the output |
|||
(providing more output space) before each call. |
|||
.LP |
|||
The library also supports reading and writing files in |
|||
.IR gzip (1) |
|||
(.gz) format |
|||
with an interface similar to that of stdio. |
|||
.LP |
|||
The library does not install any signal handler. |
|||
The decoder checks the consistency of the compressed data, |
|||
so the library should never crash even in case of corrupted input. |
|||
.LP |
|||
All functions of the compression library are documented in the file |
|||
.IR zlib.h . |
|||
The distribution source includes examples of use of the library |
|||
in the files |
|||
.I example.c |
|||
and |
|||
.IR minigzip.c . |
|||
.LP |
|||
Changes to this version are documented in the file |
|||
.I ChangeLog |
|||
that accompanies the source, |
|||
and are concerned primarily with bug fixes and portability enhancements. |
|||
.LP |
|||
A Java implementation of |
|||
.I zlib |
|||
is available in the Java Development Kit 1.1: |
|||
.IP |
|||
http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html |
|||
.LP |
|||
A Perl interface to |
|||
.IR zlib , |
|||
written by Paul Marquess (pmqs@cpan.org), |
|||
is available at CPAN (Comprehensive Perl Archive Network) sites, |
|||
including: |
|||
.IP |
|||
http://www.cpan.org/modules/by-module/Compress/ |
|||
.LP |
|||
A Python interface to |
|||
.IR zlib , |
|||
written by A.M. Kuchling (amk@magnet.com), |
|||
is available in Python 1.5 and later versions: |
|||
.IP |
|||
http://www.python.org/doc/lib/module-zlib.html |
|||
.LP |
|||
A |
|||
.I zlib |
|||
binding for |
|||
.IR tcl (1), |
|||
written by Andreas Kupries (a.kupries@westend.com), |
|||
is availlable at: |
|||
.IP |
|||
http://www.westend.com/~kupries/doc/trf/man/man.html |
|||
.LP |
|||
An experimental package to read and write files in .zip format, |
|||
written on top of |
|||
.I zlib |
|||
by Gilles Vollant (info@winimage.com), |
|||
is available at: |
|||
.IP |
|||
http://www.winimage.com/zLibDll/unzip.html |
|||
and also in the |
|||
.I contrib/minizip |
|||
directory of the main |
|||
.I zlib |
|||
web site. |
|||
.SH "SEE ALSO" |
|||
The |
|||
.I zlib |
|||
web site can be found at either of these locations: |
|||
.IP |
|||
http://www.zlib.org |
|||
.br |
|||
http://www.gzip.org/zlib/ |
|||
.LP |
|||
The data format used by the zlib library is described by RFC |
|||
(Request for Comments) 1950 to 1952 in the files: |
|||
.IP |
|||
http://www.ietf.org/rfc/rfc1950.txt (concerning zlib format) |
|||
.br |
|||
http://www.ietf.org/rfc/rfc1951.txt (concerning deflate format) |
|||
.br |
|||
http://www.ietf.org/rfc/rfc1952.txt (concerning gzip format) |
|||
.LP |
|||
These documents are also available in other formats from: |
|||
.IP |
|||
ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html |
|||
.LP |
|||
Mark Nelson (markn@ieee.org) wrote an article about |
|||
.I zlib |
|||
for the Jan. 1997 issue of Dr. Dobb's Journal; |
|||
a copy of the article is available at: |
|||
.IP |
|||
http://dogma.net/markn/articles/zlibtool/zlibtool.htm |
|||
.SH "REPORTING PROBLEMS" |
|||
Before reporting a problem, |
|||
please check the |
|||
.I zlib |
|||
web site to verify that you have the latest version of |
|||
.IR zlib ; |
|||
otherwise, |
|||
obtain the latest version and see if the problem still exists. |
|||
Please read the |
|||
.I zlib |
|||
FAQ at: |
|||
.IP |
|||
http://www.gzip.org/zlib/zlib_faq.html |
|||
.LP |
|||
before asking for help. |
|||
Send questions and/or comments to zlib@gzip.org, |
|||
or (for the Windows DLL version) to Gilles Vollant (info@winimage.com). |
|||
.SH AUTHORS |
|||
Version 1.2.3 |
|||
Copyright (C) 1995-2005 Jean-loup Gailly (jloup@gzip.org) |
|||
and Mark Adler (madler@alumni.caltech.edu). |
|||
.LP |
|||
This software is provided "as-is," |
|||
without any express or implied warranty. |
|||
In no event will the authors be held liable for any damages |
|||
arising from the use of this software. |
|||
See the distribution directory with respect to requirements |
|||
governing redistribution. |
|||
The deflate format used by |
|||
.I zlib |
|||
was defined by Phil Katz. |
|||
The deflate and |
|||
.I zlib |
|||
specifications were written by L. Peter Deutsch. |
|||
Thanks to all the people who reported problems and suggested various |
|||
improvements in |
|||
.IR zlib ; |
|||
who are too numerous to cite here. |
|||
.LP |
|||
UNIX manual page by R. P. C. Rodgers, |
|||
U.S. National Library of Medicine (rodgers@nlm.nih.gov). |
|||
.\" end of man page |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue