← Back to team overview

kicad-developers team mailing list archive

Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition

 

Hey Jon,

I finally found some time to test and review this patch and it seems to
work just fine.  My main concern is placing the schematic, gerber
viewer, and board layer IDs and their associated functions, operators,
and classes into a single file which may make creating separate board
and schematic shared objects more difficult.  I suppose we could put
them in libcommon but they really aren't common to all of kicad.  This
was one of the reasons the enum inheritance looked interesting to me.
I'm OK with merging this as long as I have your word that if we run into
issues when creating the schematic shared object that you will take
responsibility to fix the code accordingly.

Thanks,

Wayne

On 3/28/2017 12:39 PM, Jon Evans wrote:
> Hi Wayne,
> 
> Sorry about this, I did not do the rebase correctly and was not set up
> to test the build at the time.  A new patch is attached.  Unfortunately
> I cannot test on Windows right now but it does build and run on Linux.
> 
> Thanks,
> Jon
> 
> On Tue, Mar 28, 2017 at 10:43 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
> 
>     Hey Jon,
> 
>     I'm getting the following build error (there may be more but this is
>     where my build stopped):
> 
>     C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:
>     In member function 'int ROUTER_TOOL::onViaCommand(const TOOL_EVENT&)':
>     C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:501:5:
>     error: 'LAYER_ID' was not declared in this scope
>          LAYER_ID targetLayer = UNDEFINED_LAYER;
>          ^~~~~~~~
>     C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:507:9:
>     error: 'targetLayer' was not declared in this scope
>              targetLayer = m_frame->SelectLayer( static_cast<LAYER_ID>(
>     currentLayer ),
>              ^~~~~~~~~~~
>     C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:507:57:
>     error: 'LAYER_ID' does not name a type
>              targetLayer = m_frame->SelectLayer( static_cast<LAYER_ID>(
>     currentLayer ),
>                                                              ^~~~~~~~
>     C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:559:13:
>     error: 'targetLayer' was not declared in this scope
>              if( targetLayer != UNDEFINED_LAYER )
>                  ^~~~~~~~~~~
>     C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:597:13:
>     error: 'targetLayer' was not declared in this scope
>              if( targetLayer != UNDEFINED_LAYER )
>                  ^~~~~~~~~~~
>     make[2]: *** [pcbnew/router/CMakeFiles/pnsrouter.dir/build.make:783:
>     pcbnew/router/CMakeFiles/pnsrouter.dir/router_tool.cpp.obj] Error 1
>     make[1]: *** [CMakeFiles/Makefile2:1598:
>     pcbnew/router/CMakeFiles/pnsrouter.dir/all] Error 2
>     make[1]: *** Waiting for unfinished jobs....
> 
> 
>     and some build warnings that seem pretty ominous:
> 
>     C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:
>     In member function 'bool
>     WIDGET_EESCHEMA_COLOR_CONFIG::TransferDataFromControl()':
>     C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:278:63:
>     warning: array subscript is above array bounds [-Warray-bounds]
>          COLOR4D bgcolor = currentColors[LAYER_SCHEMATIC_BACKGROUND];
>                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
>     C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:282:21:
>     warning: array subscript is above array bounds [-Warray-bounds]
>              if( bgcolor == currentColors[ clyr ] && clyr !=
>     LAYER_SCHEMATIC_BACKGROUND )
>                  ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
>     C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:303:49:
>     warning: array subscript is above array bounds [-Warray-bounds]
>          currentColors[ LAYER_SCHEMATIC_BACKGROUND ] = bgcolor;
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>     C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:308:22:
>     warning: array subscript is above array bounds [-Warray-bounds]
>              SetLayerColor( currentColors[ clyr ], clyr );
>              ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:
>     In member function 'void
>     WIDGET_EESCHEMA_COLOR_CONFIG::CreateControls()':
>     C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:220:49:
>     warning: array subscript is above array bounds [-Warray-bounds]
>          currentColors[ LAYER_SCHEMATIC_BACKGROUND ] = bgColor;
>          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
> 
> 
>     On 3/28/2017 11:05 AM, Jon Evans wrote:
>     > Hi Wayne,
>     >
>     > Please try the attached patch and let me know if you have trouble with it.
>     >
>     > Thanks,
>     > Jon
>     >
>     > On Tue, Mar 28, 2017 at 9:49 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>> wrote:
>     >
>     >     John,
>     >
>     >     Please rebase your patch when you get a chance.  I just attempted to
>     >     apply it so I could do some testing and it no longer applies.  Sorry for
>     >     the headaches but I'm really busy.  I will apply it as soon as I get it
>     >     and do some testing.
>     >
>     >     Thanks,
>     >
>     >     Wayne
>     >
>     >     On 3/24/2017 8:54 AM, Jon Evans wrote:
>     >     > Hi Wayne,
>     >     >
>     >     > Any feedback on this?
>     >     >
>     >     > Thanks,
>     >     > Jon
>     >     >
>     >     > On Wed, Mar 22, 2017 at 6:15 AM, Maciej Sumiński
>     >     > <maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>
>     <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>
>     >     <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>
>     <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>>>
>     >     wrote:
>     >     >
>     >     >     I have briefly tested the patch, no issues found. I have no objections
>     >     >     to the changes, but I will leave the final decision to Wayne.
>     >     >
>     >     >     Regards,
>     >     >     Orson
>     >     >
>     >     >     On 03/22/2017 03:51 AM, Jon Evans wrote:
>     >     >     > Hi Wayne, new patch attached.
>     >     >     >
>     >     >     > Thanks,
>     >     >     > Jon
>     >     >     >
>     >     >     > On Tue, Mar 21, 2017 at 9:28 AM, Wayne Stambaugh
>     >     >     <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>>
>     >     >     > wrote:
>     >     >     >
>     >     >     >> Jon,
>     >     >     >>
>     >     >     >> I just attempted to apply your patch and it no longer applies
>     >     >     cleanly.
>     >     >     >> Please rebase it when you get a chance.
>     >     >     >>
>     >     >     >> Thanks,
>     >     >     >>
>     >     >     >> Wayne
>     >     >     >>
>     >     >     >> On 3/16/2017 10:14 AM, Jon Evans wrote:
>     >     >     >>> Bump -- does anyone have time to look at this and report back if
>     >     >     there
>     >     >     >>> are any issues?  I'd like to get it merged so that I can feel
>     >     >     confident
>     >     >     >>> about doing more work on top of these changes.
>     >     >     >>>
>     >     >     >>> Thanks,
>     >     >     >>> Jon
>     >     >     >>>
>     >     >     >>> On Tue, Mar 14, 2017 at 6:05 PM, Wayne Stambaugh
>     >     >     <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>
>     >     >     >>> <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>>> wrote:
>     >     >     >>>
>     >     >     >>>     Hey Jon,
>     >     >     >>>
>     >     >     >>>     This is better than the giant enum concept and
>     I'm willing
>     >     >     to accept
>     >     >     >>>     this.  It still lacks the type safety of the enum
>     >     inheritance
>     >     >     >> solution.
>     >     >     >>>     I still see ints being cast to enums and enum bounds
>     >     checking so
>     >     >     >> this is
>     >     >     >>>     less than ideal.  I would prefer to see some
>     additional
>     >     >     testing so if
>     >     >     >>>     any one has time, please test this patch before we
>     >     commit it.
>     >     >     >>>
>     >     >     >>>     Thanks,
>     >     >     >>>
>     >     >     >>>     Wayne
>     >     >     >>>
>     >     >     >>>     On 3/14/2017 3:09 PM, Jon Evans wrote:
>     >     >     >>>     > Hi Wayne,
>     >     >     >>>     >
>     >     >     >>>     > New patch attached.  Let me know what you
>     think of this
>     >     >     approach.
>     >     >     >>>     >
>     >     >     >>>     > Thanks,
>     >     >     >>>     > Jon
>     >     >     >>>     >
>     >     >     >>>     > On Tue, Mar 14, 2017 at 10:40 AM, Jon Evans
>     >     >     <jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
>     >     >     >> <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>
>     >     >     >>>     > <mailto:jon@xxxxxxxxxxxxx
>     <mailto:jon@xxxxxxxxxxxxx> <mailto:jon@xxxxxxxxxxxxx
>     <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
>     >     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>>> wrote:
>     >     >     >>>     >
>     >     >     >>>     >     Hi John, that's basically what my first patch
>     >     did, but
>     >     >     inside
>     >     >     >>>     one enum.
>     >     >     >>>     >
>     >     >     >>>     >     Hi Wayne, thanks for elaborating more, I see
>     >     your point.
>     >     >     >>>     >
>     >     >     >>>     >     I am still not sure there is benefit to
>     adding some
>     >     >     class to
>     >     >     >>>     handle
>     >     >     >>>     >     enum inheritance.
>     >     >     >>>     >     I think it would work fine to just chain
>     >     multiple enums
>     >     >     >>>     together, as
>     >     >     >>>     >     was done before, but with some tweaks.
>     >     >     >>>     >
>     >     >     >>>     >     enum PCB_LAYER_ID
>     >     >     >>>     >     {
>     >     >     >>>     >         F_Cu = 0,
>     >     >     >>>     >         //...
>     >     >     >>>     >         PCB_LAYER_ID_COUNT
>     >     >     >>>     >     };
>     >     >     >>>     >
>     >     >     >>>     >     enum NETNAME_LAYER_ID
>     >     >     >>>     >     {
>     >     >     >>>     >         NETNAME_LAYER_ID_START =
>     PCB_LAYER_ID_COUNT,
>     >     >     >>>     >         NETNAME_LAYER_ID_COUNT =
>     >     NETNAME_LAYER_ID_START +
>     >     >     >>>     PCB_LAYER_ID_COUNT
>     >     >     >>>     >     };
>     >     >     >>>     >
>     >     >     >>>     >     enum GAL_LAYER_ID
>     >     >     >>>     >     {
>     >     >     >>>     >         GAL_LAYER_ID_START =
>     NETNAME_LAYER_ID_COUNT,
>     >     >     >>>     >         //....
>     >     >     >>>     >     };
>     >     >     >>>     >
>     >     >     >>>     >     And so on for gerbview, eeschema, etc
>     >     >     >>>     >
>     >     >     >>>     >     That way the IDs will be unique and cover a
>     >     contiguous
>     >     >     range,
>     >     >     >> so
>     >     >     >>>     >     functions that want to take any layer ID
>     can just
>     >     >     check that
>     >     >     >>>     the ID
>     >     >     >>>     >     is >= 0 and < the end sentinel of the last
>     enum.
>     >     >     >>>     >
>     >     >     >>>     >     Any concerns with this approach?
>     >     >     >>>     >
>     >     >     >>>     >
>     >     >     >>>     >     Best,
>     >     >     >>>     >     Jon
>     >     >     >>>     >
>     >     >     >>>     >     On Tue, Mar 14, 2017 at 10:29 AM, John Beard
>     >     >     >>>     <john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>
>     >     <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>> <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>
>     >     <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx>>>
>     >     >     <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx> <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>>
>     >     <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx>
>     <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx>>>>
>     >     >     >>>     >     <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>
>     >     <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx>>
>     >     >     <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx> <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>>>
>     >     >     >>>     <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>
>     >     <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx>>
>     >     >     <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>
>     >     <mailto:john.j.beard@xxxxxxxxx
>     <mailto:john.j.beard@xxxxxxxxx>>>>>> wrote:
>     >     >     >>>     >
>     >     >     >>>     >         Hi Jon,
>     >     >     >>>     >
>     >     >     >>>     >         Protocol Buffers has the same problem.
>     >     Messages have a
>     >     >     >>>     unique number
>     >     >     >>>     >         for each field, but extensions to
>     messages don't
>     >     >     know about
>     >     >     >>>     >         "siblings". A common thing [1] to so
>     is reserve
>     >     >     IDs up to
>     >     >     >> 1000
>     >     >     >>>     >         for the
>     >     >     >>>     >         base message, and then messages start at
>     >     offsets 1000,
>     >     >     >>>     2000, etc,
>     >     >     >>>     >         based on some in-house scheme.
>     >     >     >>>     >
>     >     >     >>>     >         It probably won't just "drop in" to KiCad
>     >     due to fixed
>     >     >     >>>     arrays (I
>     >     >     >>>     >         think?), but this is certainly one way it
>     >     has been
>     >     >     >>>     "solved" in the
>     >     >     >>>     >         real world, by Google, no less! It's a bit
>     >     crusty to
>     >     >     >> manually
>     >     >     >>>     >         reserve
>     >     >     >>>     >         space, but the "enum inheritance"
>     problem isn't
>     >     >     limited to
>     >     >     >>>     C++.
>     >     >     >>>     >
>     >     >     >>>     >         There's plenty of space in enums and I
>     >     sincerely doubt
>     >     >     >>>     there is a
>     >     >     >>>     >         measurable benefit to forcing the compiler
>     >     to use
>     >     >     shorter
>     >     >     >>>     integral
>     >     >     >>>     >         types anyway, so we could just say
>     "0-9999"
>     >     is "common
>     >     >     >> GAL",
>     >     >     >>>     >         "10000-19999" is Pcbnew, etc. Some
>     work might be
>     >     >     needed to
>     >     >     >>>     handle
>     >     >     >>>     >         non-contiguous enums here. "10000 layers
>     >     should be
>     >     >     enough
>     >     >     >> for
>     >     >     >>>     >         anyone",
>     >     >     >>>     >         right?
>     >     >     >>>     >
>     >     >     >>>     >         Just a thought, without any real
>     >     consideration of the
>     >     >     >>>     >         consequences for
>     >     >     >>>     >         things like formats and so on.
>     >     >     >>>     >
>     >     >     >>>     >         Cheers,
>     >     >     >>>     >
>     >     >     >>>     >         John
>     >     >     >>>     >
>     >     >     >>>     >         [1]
>     >     >     >>>     >
>     >     >     >>>
>     >     https://developers.google.com/protocol-buffers/docs/proto#
>     <https://developers.google.com/protocol-buffers/docs/proto#>
>     >     <https://developers.google.com/protocol-buffers/docs/proto#
>     <https://developers.google.com/protocol-buffers/docs/proto#>>
>     >     >   
>      <https://developers.google.com/protocol-buffers/docs/proto#
>     <https://developers.google.com/protocol-buffers/docs/proto#>
>     >     <https://developers.google.com/protocol-buffers/docs/proto#
>     <https://developers.google.com/protocol-buffers/docs/proto#>>>
>     >     >     >> choosing-extension-numbers
>     >     >     >>>   
>      <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>
>     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>>
>     >     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>
>     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>>>
>     >     >     >> proto#choosing-extension-numbers>
>     >     >     >>>     >
>     >     >     >>>     
>     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>
>     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>>
>     >     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>
>     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>>>
>     >     >     >> proto#choosing-extension-numbers
>     >     >     >>>   
>      <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>
>     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>>
>     >     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>
>     >     <https://developers.google.com/protocol-buffers/docs/
>     <https://developers.google.com/protocol-buffers/docs/>>>
>     >     >     >> proto#choosing-extension-numbers>>
>     >     >     >>>     >
>     >     >     >>>     >         On Tue, Mar 14, 2017 at 10:08 PM, Jon Evans
>     >     >     >>>     <jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
>     >     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>
>     >     >     >>>     >         <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>>>
>     >     >     >> wrote:
>     >     >     >>>     >         > Hi Orson, Wayne,
>     >     >     >>>     >         >
>     >     >     >>>     >         > I looked at the "enum inheritance"
>     thing some
>     >     >     more and I
>     >     >     >>>     don't
>     >     >     >>>     >         think it
>     >     >     >>>     >         > would be a good solution for our case.
>     >     >     >>>     >         >
>     >     >     >>>     >         > This technique lets you extend enum
>     A with
>     >     enum
>     >     >     B, and
>     >     >     >> have
>     >     >     >>>     >         functions f(A)
>     >     >     >>>     >         > and f(A or B), and you could continue
>     >     making larger
>     >     >     >>>     enums that
>     >     >     >>>     >         contained
>     >     >     >>>     >         > smaller ones.
>     >     >     >>>     >         > But, if we maintain multiple enums (one
>     >     for each
>     >     >     >>>     application,
>     >     >     >>>     >         plus one for
>     >     >     >>>     >         > GAL layers) I don't see how it would
>     make
>     >     anything
>     >     >     >> simpler,
>     >     >     >>>     >         because we would
>     >     >     >>>     >         > not be able to treat them as
>     "sibling classes"
>     >     >     >>>     >         >
>     >     >     >>>     >         > Before I spend more time coding things I
>     >     want to
>     >     >     get an
>     >     >     >> idea
>     >     >     >>>     >         of what your
>     >     >     >>>     >         > requirements are / what you would and
>     >     would not
>     >     >     accept
>     >     >     >> as a
>     >     >     >>>     >         change in this
>     >     >     >>>     >         > area.  I misunderstood Wayne's earlier
>     >     reply to
>     >     >     me and
>     >     >     >>>     thought
>     >     >     >>>     >         that a single
>     >     >     >>>     >         > enum would be accepted, but if not,
>     I don't
>     >     >     currently
>     >     >     >>>     have a good
>     >     >     >>>     >         > understanding of what the concerns are
>     >     with that
>     >     >     >> approach.
>     >     >     >>>     >         >
>     >     >     >>>     >         > Questions for Wayne, Orson, and
>     others who
>     >     care
>     >     >     about
>     >     >     >> this:
>     >     >     >>>     >         >
>     >     >     >>>     >         > 1) Is there any opposition to moving
>     the layer
>     >     >     >> definitions
>     >     >     >>>     >         from GerbView and
>     >     >     >>>     >         > Eeschema into
>     >     layers_id_colors_and_visibility.h?
>     >     >     >> (ignoring
>     >     >     >>>     >         whether they are
>     >     >     >>>     >         > merged into one enum for now)
>     >     >     >>>     >         >
>     >     >     >>>     >         > 2) Is there any opposition to
>     ensuring that no
>     >     >     layer IDs
>     >     >     >>>     >         overlap across all
>     >     >     >>>     >         > applications?  To be clear, what I mean
>     >     now is that
>     >     >     >>>     currently
>     >     >     >>>     >         GerbView draw
>     >     >     >>>     >         > layers occupy the same layer IDs as
>     Pcbnew
>     >     board
>     >     >     >> layers.  I
>     >     >     >>>     >         want to change
>     >     >     >>>     >         > it so that a layer ID (cast to
>     integer) is
>     >     >     always unique
>     >     >     >>>     >         across all
>     >     >     >>>     >         > applications, unless it truly is the
>     same
>     >     layer
>     >     >     (i.e can
>     >     >     >> use
>     >     >     >>>     >         the same color
>     >     >     >>>     >         > settings, visibility settings, etc. as
>     >     >     GP_OVERLAY can
>     >     >     >> across
>     >     >     >>>     >         > GerbView/Pcbnew).
>     >     >     >>>     >         >
>     >     >     >>>     >         > 3) If the answers to both 1 and 2 are
>     >     "no", can
>     >     >     you give
>     >     >     >>>     some
>     >     >     >>>     >         more details
>     >     >     >>>     >         > on why it's a bad idea to put all the
>     >     layers in
>     >     >     the same
>     >     >     >>>     enum,
>     >     >     >>>     >         and based on
>     >     >     >>>     >         > that I will come back with a
>     proposal on a
>     >     >     different way
>     >     >     >> of
>     >     >     >>>     >         doing it?
>     >     >     >>>     >         >
>     >     >     >>>     >         > Thanks,
>     >     >     >>>     >         > Jon
>     >     >     >>>     >         >
>     >     >     >>>     >         > On Mon, Mar 13, 2017 at 3:07 PM, Jon
>     Evans
>     >     >     >>>     <jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
>     >     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>
>     >     >     >>>     >         <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
>     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
>     >     >     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
>     <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>>>
>     >     >     >> wrote:
>     >     >     >>>     >         >>
>     >     >     >>>     >         >> Hi Orson,
>     >     >     >>>     >         >>
>     >     >     >>>     >         >> It's an interesting idea, I will
>     have to
>     >     look at it
>     >     >     >> more.
>     >     >     >>>     >         But, doesn't
>     >     >     >>>     >         >> this still allow the programmer to
>     >     accidentally
>     >     >     overlap
>     >     >     >> two
>     >     >     >>>     >         enum values?  I
>     >     >     >>>     >         >> can add checks to prevent this from
>     happening
>     >     >     elsewhere
>     >     >     >> in
>     >     >     >>>     >         the code, but it
>     >     >     >>>     >         >> seems less clean to me.
>     >     >     >>>     >         >>
>     >     >     >>>     >         >> Best,
>     >     >     >>>     >         >> -Jon
>     >     >     >>>     >         >>
>     >     >     >>>     >         >> On Mon, Mar 13, 2017 at 1:52 PM, Maciej
>     >     Suminski
>     >     >     >>>     >         <maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>
>     >     <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>
>     >     >     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>
>     >     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>>> <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>
>     >     <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>
>     >     >     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx> <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>>>>
>     >     >     >>>     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>
>     >     <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>
>     >     >     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>
>     >     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>>> <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>
>     >     <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>
>     >     >     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>
>     >     <mailto:maciej.suminski@xxxxxxx
>     <mailto:maciej.suminski@xxxxxxx>>>>>>
>     >     >     >>>     >         >> wrote:
>     >     >     >>>     >         >>>
>     >     >     >>>     >         >>> Hi,
>     >     >     >>>     >         >>>
>     >     >     >>>     >         >>> How about emulating enum
>     inheritance [1]? I
>     >     >     suppose it
>     >     >     >>>     would
>     >     >     >>>     >         be the
>     >     >     >>>     >         >>> cleanest solution allowing us to
>     clearly
>     >     >     specify what
>     >     >     >> kind
>     >     >     >>>     >         of layer is
>     >     >     >>>     >         >>> expected for certain methods. This
>     is even
>     >     >     better kind
>     >     >     >> of
>     >     >     >>>     >         type checking.
>     >     >     >>>     >         >>>
>     >     >     >>>     >         >>> Cheers,
>     >     >     >>>     >         >>> Orson
>     >     >     >>>     >         >>>
>     >     >     >>>     >         >>> 1.
>     >     >     https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>
>     >     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>>
>     >     >     >>>   
>      <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>
>     >     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>>>
>     >     >     >>>     >
>     >     >      <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>
>     >     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>>
>     >     >     >>>   
>      <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>
>     >     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
>     >     <https://www.codeproject.com/kb/cpp/inheritenum.aspx
>     <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>>>>
>     >     >     >>>     >         >>>
>     >     >     >>>     >         >>> On 03/13/2017 02:50 PM, Jon Evans
>     wrote:
>     >     >     >>>     >         >>> > Hi Wayne,
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > I understand this might seem
>     like too
>     >     big a
>     >     >     change.
>     >     >     >>>     >         >>> > Here is what I was thinking when I
>     >     thought that
>     >     >     >>>     combining
>     >     >     >>>     >         everything
>     >     >     >>>     >         >>> > would
>     >     >     >>>     >         >>> > be a good solution.
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > - If there is more than one
>     enum, then
>     >     >     functions that
>     >     >     >>>     >         consume data from
>     >     >     >>>     >         >>> > more than one app (i.e. things in
>     >     >     common/GAL) have
>     >     >     >>>     to cast
>     >     >     >>>     >         to int, so
>     >     >     >>>     >         >>> > you
>     >     >     >>>     >         >>> > lose type checking that the enum
>     gives you
>     >     >     for free
>     >     >     >> (or
>     >     >     >>>     >         your type
>     >     >     >>>     >         >>> > checking
>     >     >     >>>     >         >>> > gets more complicated, because the
>     >     range of
>     >     >     valid
>     >     >     >> values
>     >     >     >>>     >         is different
>     >     >     >>>     >         >>> > for
>     >     >     >>>     >         >>> > each application)
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > - If there is more than one
>     enum, it's
>     >     easier to
>     >     >     >>>     duplicate
>     >     >     >>>     >         layers for
>     >     >     >>>     >         >>> > no
>     >     >     >>>     >         >>> > good reason (i.e. GerbView and
>     Pcbnew have
>     >     >     different
>     >     >     >>>     layer
>     >     >     >>>     >         ids for
>     >     >     >>>     >         >>> > "grid"
>     >     >     >>>     >         >>> > right now)
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > - I want to combine the color
>     settings
>     >     for all
>     >     >     >>>     >         applications under the
>     >     >     >>>     >         >>> > hood
>     >     >     >>>     >         >>> > (users will still be able to
>     configure
>     >     different
>     >     >     >> colors
>     >     >     >>>     >         for each
>     >     >     >>>     >         >>> > application).  This change will
>     let color
>     >     >     settings
>     >     >     >> take
>     >     >     >>>     >         LAYER_ID
>     >     >     >>>     >         >>> > instead of
>     >     >     >>>     >         >>> > int, and there will only be one
>     key/value
>     >     >     mapping of
>     >     >     >>>     >         colors -- no more
>     >     >     >>>     >         >>> > difference between
>     "GetLayerColor" and
>     >     >     >> "GetItemColor".
>     >     >     >>>     >         There will be
>     >     >     >>>     >         >>> > no
>     >     >     >>>     >         >>> > clashes between the meaning of a
>     layer id
>     >     >     (int type)
>     >     >     >>>     >         between different
>     >     >     >>>     >         >>> > applications.
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > - Bringing Eeschema into this now is
>     >     just early
>     >     >     >>>     groundwork
>     >     >     >>>     >         for Eeschema
>     >     >     >>>     >         >>> > GAL
>     >     >     >>>     >         >>> > port (as well as unified color
>     settings)
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > If you will not accept this
>     change, I have
>     >     >     to think
>     >     >     >>>     about
>     >     >     >>>     >         a different
>     >     >     >>>     >         >>> > proposal that will make the
>     different
>     >     layer
>     >     >     types in
>     >     >     >>>     different
>     >     >     >>>     >         >>> > applications
>     >     >     >>>     >         >>> > a bit more manageable than they are
>     >     today.  I
>     >     >     >> understand
>     >     >     >>>     >         how having one
>     >     >     >>>     >         >>> > giant enum for LAYER_ID seems more
>     >     >     complicated, I'm
>     >     >     >> just
>     >     >     >>>     >         worried that
>     >     >     >>>     >         >>> > having several different enums will
>     >     make the
>     >     >     code
>     >     >     >> that
>     >     >     >>>     >         consumes
>     >     >     >>>     >         >>> > LAYER_ID
>     >     >     >>>     >         >>> > more complicated, especially if the
>     >     applications
>     >     >     >> become
>     >     >     >>>     >         more integrated
>     >     >     >>>     >         >>> > with each other and start
>     sharing more
>     >     code.
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > Best,
>     >     >     >>>     >         >>> > Jon
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> > On Mon, Mar 13, 2017 at 8:21 AM,
>     Wayne
>     >     Stambaugh
>     >     >     >>>     >         <stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
>     >     >     <mailto:stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx> <mailto:stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx>>>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
>     >     >     <mailto:stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx> <mailto:stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx>>>>
>     >     >     >>>     <mailto:stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>
>     >     >     <mailto:stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx> <mailto:stambaughw@xxxxxxxxx
>     <mailto:stambaughw@xxxxxxxxx>>
>     >     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
>     <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>>>>
>     >     >     >>>     >         >>> > wrote:
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> >> Jon,
>     >     >     >>>     >         >>> >>
>     >     >     >>>     >         >>> >> I misunderstood your original
>     intent.  I
>     >     >     don't think
>     >     >     >>>     >         cluttering the
>     >     >     >>>     >         >>> >> board layer enums with all of
>     the virtual
>     >     >     layer and
>     >     >     >>>     >         schematic layer
>     >     >     >>>     >         >>> >> enums is a good idea.  It just
>     seems like
>     >     >     overkill
>     >     >     >> to
>     >     >     >>>     >         me.  I thought
>     >     >     >>>     >         >>> >> you
>     >     >     >>>     >         >>> >> were going to create a separate
>     enum for
>     >     >     virtual
>     >     >     >> board
>     >     >     >>>     >         layers.  You
>     >     >     >>>     >         >>> >> could always start the virtual
>     board
>     >     layer
>     >     >     enums
>     >     >     >>>     from the
>     >     >     >>>     >         last board
>     >     >     >>>     >         >>> >> layer enum if you need unique
>     enums.  I
>     >     >     would also
>     >     >     >>>     prefer the
>     >     >     >>>     >         >>> >> schematic
>     >     >     >>>     >         >>> >> layer enums be separate from
>     the board
>     >     >     layer enums
>     >     >     >> for
>     >     >     >>>     >         clarity.
>     >     >     >>>     >         >>> >> Anyone
>     >     >     >>>     >         >>> >> else have any thoughts on this?
>     >     >     >>>     >         >>> >>
>     >     >     >>>     >         >>> >> Cheers,
>     >     >     >>>     >         >>> >>
>     >     >     >>>     >         >>> >> Wayne
>     >     >     >>>     >         >>> >>
>     >     >     >>>     >         >>> >> On 3/12/2017 11:24 PM, Jon
>     Evans wrote:
>     >     >     >>>     >         >>> >>> Hi all,
>     >     >     >>>     >         >>> >>>
>     >     >     >>>     >         >>> >>> Per the other thread, this
>     patch unifies
>     >     >     the layer
>     >     >     >>>     >         definitions
>     >     >     >>>     >         >>> >>> between
>     >     >     >>>     >         >>> >>> Pcbnew, GerbView, and
>     Eeschema.  It
>     >     >     removes the
>     >     >     >>>     need for
>     >     >     >>>     >         >>> >>> ITEM_GAL_LAYER
>     >     >     >>>     >         >>> >>> and some other macros, and it will
>     >     >     simplify the
>     >     >     >>>     >         implementation of
>     >     >     >>>     >         >>> >>> cross-application color themes
>     and using
>     >     >     GAL in
>     >     >     >>>     multiple
>     >     >     >>>     >         >>> >>> applications.
>     >     >     >>>     >         >>> >>>
>     >     >     >>>     >         >>> >>> Note that this patch
>     introduces some
>     >     temporary
>     >     >     >>>     weirdness
>     >     >     >>>     >         in a few
>     >     >     >>>     >         >>> >>> places, such as in
>     >     COLORS_DESIGN_SETTINGS
>     >     >     (there
>     >     >     >>>     is now
>     >     >     >>>     >         a single
>     >     >     >>>     >         >>> >>> array
>     >     >     >>>     >         >>> >>> for color storage, but it's still
>     >     referred
>     >     >     to by
>     >     >     >>>     two sets of
>     >     >     >>>     >         >>> >>> getters/setters).  This is
>     because I
>     >     wanted to
>     >     >     >>>     keep this
>     >     >     >>>     >         refactor as
>     >     >     >>>     >         >>> >>> simple as possible, as I plan to
>     >     follow it
>     >     >     up with
>     >     >     >> an
>     >     >     >>>     >         overhaul of
>     >     >     >>>     >         >>> >>> color
>     >     >     >>>     >         >>> >>> settings when I share my color
>     >     themes work.  I
>     >     >     >> didn't
>     >     >     >>>     >         want to do work
>     >     >     >>>     >         >>> >>> that I would soon end up
>     getting rid of
>     >     >     anyway.
>     >     >     >>>     >         >>> >>>
>     >     >     >>>     >         >>> >>> Best,
>     >     >     >>>     >         >>> >>> Jon
>     >     >     >>>     >         >>> >>>
>     >     >     >>>     >         >>> >>>
>     >     >     >>>     >         >>> >>>
>     >     >     _______________________________________________
>     >     >     >>>     >         >>> >>> Mailing list:
>     >     >     >>>     https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> >>> Post to     :
>     >     >     kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
>     >     >     >>>     >       
>      <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>>
>     >     >     >>>     >         >>> >>> Unsubscribe :
>     >     https://launchpad.net/~kicad-
>     >     >     >> developers
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> >>> More help   :
>     >     >     https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>
>     >     >     >>>     >         <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>>
>     >     >     >>>     >         >>> >>>
>     >     >     >>>     >         >>> >>
>     >     >     >>>     >         >>> >>
>     >     _______________________________________________
>     >     >     >>>     >         >>> >> Mailing list:
>     >     https://launchpad.net/~kicad-
>     >     >     >> developers
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> >> Post to     :
>     >     >     kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
>     >     >     >>>     >       
>      <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>>
>     >     >     >>>     >         >>> >> Unsubscribe :
>     >     https://launchpad.net/~kicad-
>     >     >     >> developers
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> >> More help   :
>     >     >     https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>
>     >     >     >>>     >         <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>>
>     >     >     >>>     >         >>> >>
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>> >
>     >     _______________________________________________
>     >     >     >>>     >         >>> > Mailing list:
>     >     https://launchpad.net/~kicad-
>     >     >     >> developers
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> > Post to     :
>     >     >     kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
>     >     >     >>>     >       
>      <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>>
>     >     >     >>>     >         >>> > Unsubscribe :
>     >     https://launchpad.net/~kicad-
>     >     >     >> developers
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> > More help   :
>     >     >     https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>
>     >     >     >>>     >         <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>>
>     >     >     >>>     >         >>> >
>     >     >     >>>     >         >>>
>     >     >     >>>     >         >>> _______________________________________________
>     >     >     >>>     >         >>> Mailing list:
>     >     >     https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >         <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> Post to     :
>     >     >     kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
>     >     >     >>>     >         <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>>
>     >     >     >>>     >         >>> Unsubscribe :
>     >     >     https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         >>> More help   :
>     >     >     https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>
>     >     >     >>>     >         <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>>
>     >     >     >>>     >         >>
>     >     >     >>>     >         >>
>     >     >     >>>     >         >
>     >     >     >>>     >         >
>     >     >     >>>     >         > _______________________________________________
>     >     >     >>>     >         > Mailing list:
>     >     >     https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >         <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         > Post to     :
>     >     >     kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
>     >     >     >>>     >         <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     >>>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>>
>     >     >     >>>     >         > Unsubscribe :
>     >     >     https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>
>     >     >     >>>     >       
>      <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     >>>     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>>>
>     >     >     >>>     >         > More help   :
>     >     >     https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>
>     >     >     >>>     >         <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >>>     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>>>
>     >     >     >>>     >         >
>     >     >     >>>     >
>     >     >     >>>     >
>     >     >     >>>     >
>     >     >     >>>
>     >     >     >>>
>     >     >     >>
>     >     >     >
>     >     >     >
>     >     >     >
>     >     >     > _______________________________________________
>     >     >     > Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     > Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     > More help   : https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >     >
>     >     >
>     >     >
>     >     >
>     >     >     _______________________________________________
>     >     >     Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
>     >     >     Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>>
>     >     >     More help   : https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>>
>     >     >
>     >     >
>     >     >
>     >     >
>     >     > _______________________________________________
>     >     > Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     > Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     > More help   : https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >     >
>     >
>     >     _______________________________________________
>     >     Mailing list: https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
>     >     Unsubscribe : https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>
>     >     <https://launchpad.net/~kicad-developers
>     <https://launchpad.net/~kicad-developers>>
>     >     More help   : https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>
>     >     <https://help.launchpad.net/ListHelp
>     <https://help.launchpad.net/ListHelp>>
>     >
>     >
> 
> 


Follow ups

References