← Back to team overview

kicad-developers team mailing list archive

[PATCH 00/12] A few well-aged patches

 

Hi,

these have been in my patch stack for ages, so I'd think they should be
generally safe. None of these should really change any actual
functionality (except for fixing Unicode file names on Windows), but I'd
really like to drop them from the stack I keep on rebasing onto every new
version -- also, not having to patch central header files will speed up my
builds considerably.

To summarize:

 - idf2vrml uses "int main(int, char **)" as main function. This does not
   work with Unicode file names on Windows, where all non-ANSI characters
   are replaced with question marks. A patch from Cirilo converts it to use
   wxAppConsole instead, making it the responsibility of the wx framework.
   Two additional patches from me go on top of that -- console apps need a
   different wxIMPLEMENT_APP invocation, and a few header files then go
   unused.

 - the known portability fixes: using std::atomic<> instead of gcc
   intrinsics, adding missing stdlib headers, fixing name lookup for a few
   definitions, avoiding C99 style compound statements, fixing linkage on
   Windows, fixing the return type of Pgm() by introducing a separate
   PgmTop()

 - a VS2015 workaround. The original code makes no sense, the new code
   equally doesn't make any sense, but it is more readable and does not
   trigger a compiler bug, so I'd call it a net improvement.

 - fine-grained performance measurement primitives on Windows, using the
   TSC instead of the system clock.

 - CURL does not necessarily use OpenSSL, so we can avoid a dependency here
   if we're not going to use it. This is still decided by platform, ideally
   we'd determine what version of CURL we are linking against (or CURL
   would fix the problem themselves).

Cirilo Bernardo (1):
  Convert idf2vrml to use wxApp etc for option processing

Simon Richter (11):
  Use std::atomic for portable locale init counting
  Add missing C++ stdlib headers
  Open namespace around definitions
  Avoid C99 style compound statement
  Avoid conflicting declaration for Pgm()
  Make sure KIFACE_GETTER linkage is consistent
  Work around VC++ 2015 bug.
  windows: provide performance measurement primitives
  Narrow assumption on OpenSSL use
  Use wxIMPLEMENT_APP_CONSOLE for console apps
  Drop <libgen.h> and <unistd.h>, no longer needed

 bitmap2component/bitmap2cmp_gui.cpp            |   2 +-
 common/common.cpp                              |  10 +-
 common/gal/graphics_abstraction_layer.cpp      |   2 +
 common/grid_tricks.cpp                         |   2 +
 common/kicad_curl/kicad_curl.cpp               |   2 +-
 common/selcolor.cpp                            |   2 +
 common/tool/action_manager.cpp                 |   1 +
 eeschema/autoplace_fields.cpp                  |   5 +-
 eeschema/class_library.h                       |   2 +
 eeschema/dialogs/dialog_lib_edit_pin_table.cpp |   2 +
 eeschema/sch_sheet_path.h                      |   2 +
 gerbview/class_gerber_file_image.cpp           |   1 +
 gerbview/class_gerber_file_image_list.cpp      |   2 +
 include/common.h                               |   4 +-
 include/kiway.h                                |  10 +-
 include/math/box2.h                            |   8 +-
 include/pgm_base.h                             |   2 -
 include/profile.h                              |  32 +++
 include/tool/tool_event.h                      |   1 +
 include/tool/tool_manager.h                    |   1 +
 kicad/files-io.cpp                             |   2 +-
 kicad/kicad.cpp                                |   9 +-
 kicad/mainframe.cpp                            |   8 +-
 kicad/menubar.cpp                              |   6 +-
 kicad/pgm_kicad.h                              |   3 +-
 kicad/prjconfig.cpp                            |   8 +-
 pcb_calculator/transline/transline.cpp         |   1 +
 pcbnew/layer_widget.cpp                        |   3 +
 pcbnew/ratsnest_data.h                         |   2 +
 pcbnew/ratsnest_viewitem.cpp                   |   4 +-
 pcbnew/router/pns_diff_pair.cpp                |   1 +
 pcbnew/router/pns_optimizer.cpp                |   2 +
 pcbnew/router/pns_utils.cpp                    |   2 +
 pcbnew/tools/conditional_menu.h                |   1 +
 pcbnew/tools/edit_points.h                     |   3 +
 polygon/math_for_graphics.cpp                  |   1 +
 utils/idftools/idf2vrml.cpp                    | 269 ++++++++++++-------------
 utils/idftools/idf_common.cpp                  |   1 +
 38 files changed, 245 insertions(+), 174 deletions(-)

-- 
2.1.4


Follow ups