MC WIN32 build ... gcc'ish
adamyg
adamyg at gmail.com
Thu Aug 2 21:34:41 UTC 2012
Having used an old WIN32 native build version for years (4.6.x) I've
recently moved forward and built a native WIN32 version against a current
mc-4.8.4 stable snapshot.
Generally the version is stable (internal editor, most of the vfs subsystem
etc), yet porting raised a number of issues which shall create problems if
these changes are to be released.
The two compiler related issues are visible (i.e. non gcc), firstly use of
'void *' calculations (minor) and secondary non-const structure
initialisation, specifically the QUICK_xxxx
macros which represent numerous changes across the source tree, see below.
QuickWidget quick_widgets[] = {
/* 0 */ QUICK_BUTTON (0, dlg_width, dlg_height, dlg_height,
N_("&Cancel"), B_CANCEL, NULL),
/* 1 */ QUICK_BUTTON (0, dlg_width, dlg_height, dlg_height,
N_("&OK"), B_ENTER, NULL),
/* 2 */ QUICK_CHECKBOX (0, dlg_width, 5, dlg_height,
N_("&Reverse"), &info->reverse),
/* 3 */ QUICK_CHECKBOX (0, dlg_width, 4, dlg_height, N_("Case
sensi&tive"), &info->case_sensitive),
/* 4 */ QUICK_CHECKBOX (0, dlg_width, 3, dlg_height,
N_("Executable &first"), &info->exec_first),
/* 5 */ QUICK_RADIO (4, dlg_width, 3, dlg_height, 0, NULL,
&sort_idx),
QUICK_END
};
which needed to be replaced (current solution as follows):
QuickWidget quick_widgets[7], *quick_cursor = quick_widgets;
quick_cursor = /* 0 */ QUICK_PUSH_BUTTON (quick_cursor, 0,
dlg_width, dlg_height, dlg_height, N_("&Cancel"), B_CANCEL, NULL);
quick_cursor = /* 1 */ QUICK_PUSH_BUTTON (quick_cursor, 0,
dlg_width, dlg_height, dlg_height, N_("&OK"), B_ENTER, NULL);
quick_cursor = /* 2 */ QUICK_PUSH_CHECKBOX (quick_cursor, 0,
dlg_width, 5, dlg_height, N_("&Reverse"), &info->reverse);
quick_cursor = /* 3 */ QUICK_PUSH_CHECKBOX (quick_cursor, 0,
dlg_width, 4, dlg_height, N_("Case sensi&tive"), &info->case_sensitive);
quick_cursor = /* 4 */ QUICK_PUSH_CHECKBOX (quick_cursor, 0,
dlg_width, 3, dlg_height, N_("Executable &first"), &info->exec_first);
quick_cursor = /* 5 */ QUICK_PUSH_RADIO (quick_cursor, 4,
dlg_width, 3, dlg_height, 0, NULL, &sort_idx);
quick_cursor = QUICK_PUSH_END (quick_cursor);
g_assert(quick_cursor == quick_widgets +
G_N_ELEMENTS(quick_widgets));
Note: the QUICK_PUSH_xxxx inline functions simply wrap the
QUICK_xxxx macros.
Firstly that are the thoughts on an active native WIN32 build and secondary
can these compiler'ish be reworked to support non gcc builds ?
Excluding these changes WIN32 support (so far) represents around 20 patches
mainly for drive and alt-configuration options,
plus a number of new modules to emulate posix functions, built against
libglib-2.0 from gtk.
Comments
Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.midnight-commander.org/pipermail/mc-devel/attachments/20120802/87b93fa2/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen1.bmp
Type: image/bmp
Size: 1410254 bytes
Desc: not available
URL: <http://lists.midnight-commander.org/pipermail/mc-devel/attachments/20120802/87b93fa2/attachment.bmp>
More information about the mc-devel
mailing list