Ticket #2866 (closed enhancement: fixed)

Opened 7 years ago

Last modified 2 years ago

publish win32 native build details

Reported by: adamyg Owned by:
Priority: major Milestone:
Component: documentation Version: master
Keywords: Cc: zaytsev
Blocked By: Blocking:
Branch state: no branch Votes for changeset:

Description

An MS-Windows (Win32) native port of Midnight Commander is now available from, http://sourceforge.net/projects/mcwin32/

Please update wiki references, also requesting beta testers.

The version build details:

c:\mc -V
GNU Midnight Commander 4.8.4
Built with GLib 2.28.8
Using the S-Lang library with terminfo database
With builtin Editor
With mouse support on xterm
With multiple codepages support
Virtual File Systems: cpiofs, tarfs, sfs, extfs, ftpfs
Data types: char: 8; int: 32; long: 32; void *: 32; size_t: 32; off_t: 32;

Change History

comment:1 Changed 7 years ago by zaytsev

  • Cc zaytsev added

What you did there is very cool, but I don't seem to be able to find neither the source code (the git repository is empty?), nor any of the build instructions...

comment:2 follow-up: ↓ 3 Changed 7 years ago by adamyg

Source shall be pushed in the near future ....

Need to resolve best method of release, there is prelim documentation within the current installation do/INSTALL.win32.

Current throught push changes needed to main mc git base and maintain additional code under sourceforge as additional package.

Main issue related to compiler features, see below.
thx

mc-devl post

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

-- Adam

comment:3 in reply to: ↑ 2 Changed 7 years ago by andrew_b

Replying to adamyg:

Firstly that are the thoughts on an active native WIN32 build and secondary can these compiler'ish be reworked to support non gcc builds ?

No. The goal of QuickDialog? engine is simplifying of dialog creation. Actually, QUICK_PUSH_xxxx functions make QuickDialog? superfluous and needless. It is not better than

quick_cursor = xxx_new (...);
add_widget (h, quick_cursor);

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.

Don't torment over mc in Windows. Keep your time and use FAR instead. It is native, free and open source for years. It is better for Windows than mc, just believe me.

comment:4 Changed 7 years ago by angel_il

  • Status changed from new to closed
  • Resolution set to fixed

comment:5 Changed 2 years ago by andrew_b

  • Milestone Documentation deleted
Note: See TracTickets for help on using tickets.