annotate netinstall/localdir.cc @ 5124:623d57b7fbe8 ben-lisp-object

separate regular and disksave finalization, print method fixes. Create separate disksave method and make the finalize method only be for actual object finalization, not disksave finalization. Fix places where 0 was given in place of a printer -- print methods are mandatory, and internal objects formerly without a print method now must explicitly specify internal_object_printer(). Change the defn of CONSOLE_LIVE_P to avoid problems in some weird situations. -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-01-20 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (very_old_free_lcrecord): * alloc.c (disksave_object_finalization_1): * alloc.c (make_lcrecord_list): * alloc.c (alloc_managed_lcrecord): * alloc.c (free_managed_lcrecord): * alloc.c (sweep_lcrecords_1): * buffer.c: * bytecode.c: * bytecode.c (Fcompiled_function_p): * chartab.c: * console-impl.h: * console-impl.h (CONSOLE_TYPE_P): * console.c: * console.c (set_quit_events): * data.c: * data.c (Fmake_ephemeron): * database.c: * database.c (finalize_database): * database.c (Fclose_database): * device-msw.c: * device-msw.c (finalize_devmode): * device-msw.c (allocate_devmode): * device.c: * elhash.c: * elhash.c (finalize_hash_table): * eval.c: * eval.c (bind_multiple_value_limits): * event-stream.c: * event-stream.c (finalize_command_builder): * events.c: * events.c (mark_event): * extents.c: * extents.c (finalize_extent_info): * extents.c (uninit_buffer_extents): * faces.c: * file-coding.c: * file-coding.c (finalize_coding_system): * file-coding.h: * file-coding.h (struct coding_system_methods): * file-coding.h (struct detector): * floatfns.c: * floatfns.c (extract_float): * fns.c: * fns.c (Fidentity): * font-mgr.c (finalize_fc_pattern): * font-mgr.c (finalize_fc_config): * frame.c: * glyphs.c: * glyphs.c (finalize_image_instance): * glyphs.c (unmap_subwindow_instance_cache_mapper): * gui.c: * gui.c (gui_error): * keymap.c: * lisp.h (struct Lisp_Symbol): * lrecord.h: * lrecord.h (struct lrecord_implementation): * lrecord.h (MC_ALLOC_CALL_FINALIZER): * lrecord.h (MC_ALLOC_CALL_FINALIZER_FOR_DISKSAVE): * lrecord.h (DEFINE_DUMPABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_FROB_BLOCK_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_INTERNAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_SIZABLE_INTERNAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_FROB_BLOCK_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_INTERNAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_SIZABLE_INTERNAL_LISP_OBJECT): * lrecord.h (MAKE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_DUMPABLE_MODULE_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_GENERAL_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_LISP_OBJECT): * lrecord.h (DEFINE_NODUMP_MODULE_SIZABLE_GENERAL_LISP_OBJECT): * lrecord.h (MAKE_MODULE_LISP_OBJECT): * lstream.c: * lstream.c (finalize_lstream): * lstream.c (disksave_lstream): * marker.c: * marker.c (finalize_marker): * mule-charset.c (make_charset): * number.c: * objects.c: * objects.c (finalize_color_instance): * objects.c (finalize_font_instance): * opaque.c: * opaque.c (make_opaque_ptr): * process-nt.c: * process-nt.c (nt_finalize_process_data): * process-nt.c (nt_deactivate_process): * process.c: * process.c (finalize_process): * procimpl.h (struct process_methods): * scrollbar.c: * scrollbar.c (free_scrollbar_instance): * specifier.c (finalize_specifier): * symbols.c: * toolbar.c: * toolbar.c (Ftoolbar_button_p): * tooltalk.c: * ui-gtk.c: * ui-gtk.c (emacs_gtk_object_finalizer): * ui-gtk.c (allocate_emacs_gtk_boxed_data): * window.c: * window.c (finalize_window): * window.c (mark_window_as_deleted): Separate out regular and disksave finalization. Instead of a FOR_DISKSAVE argument to the finalizer, create a separate object method `disksaver'. Make `finalizer' have only one argument. Go through and separate out all finalize methods into finalize and disksave. Delete lots of thereby redundant disksave checking. Delete places that signal an error if we attempt to disksave -- all of these objects are non-dumpable and we will get an error from pdump anyway if we attempt to dump them. After this is done, only one object remains that has a disksave method -- lstream. Change DEFINE_*_LISP_OBJECT_WITH_PROPS to DEFINE_*_GENERAL_LISP_OBJECT, which is used for specifying either property methods or disksave methods (or in the future, any other less-used methods). Remove the for_disksave argument to finalize_process_data. Don't provide a disksaver for processes because no one currently needs it. Clean up various places where objects didn't provide a print method. It was made mandatory in previous changes, and all methods now either provide their own print method or use internal_object_printer or external_object_printer. Change the definition of CONSOLE_LIVE_P to use the contype enum rather than looking into the conmeths structure -- in some weird situations with dead objects, the conmeths structure is NULL, and printing such objects from debug_print() will crash if we try to look into the conmeths structure.
author Ben Wing <ben@xemacs.org>
date Wed, 20 Jan 2010 07:05:57 -0600
parents 685b588e92d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
1 /*
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
2 * Copyright (c) 2000, Red Hat, Inc.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
3 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
7 * (at your option) any later version.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
8 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
9 * A copy of the GNU General Public License can be found at
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
10 * http://www.gnu.org/
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
11 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
12 * Written by Andrej Borsenkow <Andrej.Borsenkow@mow.siemens.ru>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
13 * based on work and suggestions of DJ Delorie
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
14 *
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
15 * Sync'ed with cinstall 2001-10-16
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
16 */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
17
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
18 /* The purpose of this file is to ask the user where they want the
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
19 root of the installation to be, and to ask whether the user prefers
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
20 text or binary mounts. */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
21
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
22 #include "win32.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
23 #include <shlobj.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
24 #include <stdio.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
25 #include <stdlib.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
26 #include <ctype.h>
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
27 #include <io.h>
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
28
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
29 #include "mkdir.h"
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
30 #include "dialog.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
31 #include "resource.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
32 #include "state.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
33 #include "msg.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
34 #include "concat.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
35 #include "log.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
36
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
37 static void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
38 check_if_enable_next (HWND h)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
39 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
40 EnableWindow (GetDlgItem (h, IDOK), local_dir != 0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
41 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
42
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
43 static void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
44 load_dialog (HWND h)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
45 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
46 eset (h, IDC_LOCAL_DIR, local_dir);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
47 check_if_enable_next (h);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
48 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
49
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
50 static void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
51 save_dialog (HWND h)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
52 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
53 local_dir = eget (h, IDC_LOCAL_DIR, local_dir);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
54 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
55
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
56
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
57 static int CALLBACK
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
58 browse_cb (HWND h, UINT m, LPARAM lp, LPARAM data)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
59 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
60 switch (m)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
61 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
62 case BFFM_INITIALIZED:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
63 if (local_dir)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
64 SendMessage (h, BFFM_SETSELECTION, TRUE, (LPARAM)local_dir);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
65 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
66 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
67 return 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
68 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
69
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
70 static void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
71 browse (HWND h)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
72 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
73 BROWSEINFO bi;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
74 CHAR name[MAX_PATH];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
75 LPITEMIDLIST pidl;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
76 memset (&bi, 0, sizeof (bi));
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
77 bi.hwndOwner = h;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
78 bi.pszDisplayName = name;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
79 bi.lpszTitle = "Select download directory";
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
80 bi.ulFlags = BIF_RETURNONLYFSDIRS;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
81 bi.lpfn = browse_cb;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
82 pidl = SHBrowseForFolder (&bi);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
83 if (pidl)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
84 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
85 if (SHGetPathFromIDList (pidl, name))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
86 eset (h, IDC_LOCAL_DIR, name);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
87 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
88 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
89
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
90
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
91 static BOOL
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
92 dialog_cmd (HWND h, int id, HWND hwndctl, UINT code)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
93 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
94 switch (id)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
95 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
96
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
97 case IDC_LOCAL_DIR:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
98 save_dialog (h);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
99 check_if_enable_next (h);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
100 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
101
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
102 case IDC_LOCAL_DIR_BROWSE:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
103 browse (h);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
104 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
105
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
106 case IDOK:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
107 save_dialog (h);
673
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
108 if (_access (local_dir, 0) != 0 && yesno (IDS_CREATE_DIR, local_dir) == IDYES)
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
109 {
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
110 log (0, "Created install directory %s\n", local_dir);
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
111 mkdir_p (1, local_dir);
685b588e92d8 [xemacs-hg @ 2001-10-30 05:13:26 by andyp]
andyp
parents: 448
diff changeset
112 }
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
113 if (SetCurrentDirectoryA (local_dir))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
114 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
115 switch (source)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
116 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
117 case IDC_SOURCE_DOWNLOAD:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
118 NEXT (IDD_NET);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
119 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
120 case IDC_SOURCE_NETINST:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
121 case IDC_SOURCE_CWD:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
122 NEXT (IDD_ROOT);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
123 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
124 default:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
125 NEXT (0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
126 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
127 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
128 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
129 else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
130 note (IDS_ERR_CHDIR, local_dir);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
131
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
132 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
133
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
134 case IDC_BACK:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
135 save_dialog (h);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
136 NEXT (IDD_SOURCE);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
137 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
138
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
139 case IDCANCEL:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
140 NEXT (0);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
141 break;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
142 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
143 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
144
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
145 static BOOL CALLBACK
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
146 dialog_proc (HWND h, UINT message, WPARAM wParam, LPARAM lParam)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
147 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
148 switch (message)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
149 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
150 case WM_INITDIALOG:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
151 load_dialog (h);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
152 return FALSE;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
153 case WM_COMMAND:
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
154 return HANDLE_WM_COMMAND (h, wParam, lParam, dialog_cmd);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
155 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
156 return FALSE;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
157 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
158
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
159 extern char cwd[_MAX_PATH];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
160
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
161 void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
162 do_local_dir (HINSTANCE h)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
163 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
164 int rv = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
165 rv = DialogBox (h, MAKEINTRESOURCE (IDD_LOCAL_DIR), 0, dialog_proc);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
166 if (rv == -1)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
167 fatal (IDS_DIALOG_FAILED);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
168
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
169 log (0, "Selected local directory: %s", local_dir);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
170 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
171