📄 changelog
字号:
Version 2.2.7a (6th June 2004)-------------- When using gtkmm-2.4: Gtk::FileChooserDialog is used instead of Gtk::FileSelection as the file selector dialog (dialogs.h, dialogs.cpp and mainwindow.cpp). Gtk::IconTheme is used to pick the icon for the program (otherwise the default built-in icon is used) (prog_defs.h and main.cpp). The mutex locking of prog_config is cleaned up. In dialogs, exec() methods are substituted for run() methods (this is because in gtkmm-2.*, Gtk::Dialog has its own non-virtual run() method and some dislogs used in the program are derived from Gtk::Dialog. Having a separate exec() method avoids the wrong method being called by mistake from a Gtk::Dialog pointer/reference (and attempts to call exec() from a Gtk::Dialog pointer/reference will fail to compile). Lists of files received by the socket server for faxing are passed by shared pointer (mainwindow.h, mainwindow.cpp, socket_list.h, socket_list.cpp socket_server.h, socket_server.cpp). Further clean ups of use of Glib::ustring and std::string (dialogs.cpp). Some changes to the build system so that AC_CHECK_FILES is used instead of AC_CHECK_FILE, and the install will not fail if there is no user 'lp' on the system (acinclude.m4, configure.ac, prog_defs.h and efax-gtk-socket-client.cpp). Version 2.2.7 (6th May 2004)-------------The socket server now runs in its own thread, compliant with therequirement in IEEE Std 1003.1 that any system calls after fork()ingand before exec()ing in a multi-threaded program should beasync-signal-safe.Version 2.2.6b (6th June 2004)-------------- Carry out Filename to UTF-8 conversion in MainWindow:get_file_slot() (mainwindow.cpp). Further clean ups of use of Glib::ustring and std::string (dialogs.cpp). Some changes to the build system so that AC_CHECK_FILES is used instead of AC_CHECK_FILE, and the install will not fail if there is no user 'lp' on the system (acinclude.m4, configure.ac and prog_defs.h). Socket_server::is_files() method added (socket_server.h, socket_server.cpp and mainwindow.cpp) Version 2.2.6a (6th May 2004)--------------Bulgarian translation (Zdravko Nikolov).Italian translation updated (Luca De Rugeriis).Some bug fixes (main.cpp, file_list.cpp socket_list.cpp).Version 2.2.6 (12th April 2004)-------------The program will now compile and work with gtkmm-2.4, as well asgtkmm-2.2 and gtkmm-2.0.The settings dialog contains two new options. First, the user canelect to execute a program or have a pop-up dialog appear whenever afax is received. If a program is executed, it will be passed thenumber of the fax received as appearing in the faxes received list asan argument. Two executable scripts, mail_fax and print_fax, areprovided for the purpose. (efax_controller.cpp, main.cpp,mainwindow.cpp and settings.cpp).Second, the user can elect not to bring up the confirmatory pop-updialog after pressing the "Print selected fax" button in the ReceivedFaxes list or Sent Faxes list. (fax_list.cpp, main.cpp,mainwindow.cpp and settings.cpp).The efax-gtk.desktop file is now installed in $datadir/applicationsinstead of $datadir/gnome/apps/Applications, and it uses the iconsupplied with GNOME-2.6 comprising stock_send-fax.png.The use of Glib::ustring and std::string is rationalised and cleanedup (dialogs.cpp, fax_list.cpp and socket_list.cpp).Version 2.2.5a (6th March 2004)--------------Polish translation (Pawel Suwinski).A fax can now be sent on an open telephone connection if no telephonenumber is entered into the "Tel Number" box (this does the same thingas 'fax send -m ...' using the efax 'fax' script from the commandline).'efax-gtk [filename]' now works correctly again.For users of lpd/lprng, efax-gtk-socket-client now logs error messagesvia syslog().Version 2.2.5 (5th February 2004)-------------The dialog which notifies whether a fax has been received for sendingfrom the socket can be used to send the fax. The documentation(README and helpfile.cpp) has been updated to reflect this.Faxes received via the socket server from the print system are nowstored in the user's home directory($HOME/efax-gtk-server), ratherthan in the /tmp directory for security reasons.The version number is correctly reported after enterering 'efax-gtk--help' or 'efax-gtk --version'.The order of entries in this ChangeLog/NEWS file has been reversed.Version 2.2.4 (10th January 2004)-------------A potential race condition, which can manifest itself in Linux kernel2.6 (but not kernel 2.4) can occur byefax_controller_childexit_handler() being called inefax_controller.cpp before fork() in EfaxController::sendfax() orEfaxController::receive() has returned in the parent process, soconfusing the test of child_pid in fax_controller_childexit_handler().This has been corrected by masking SIGCHLD immediately before thefork(), and unmasking it after fork() returns. Also a theoretical racecondition in EfaxController::timer_event() has been corrected(efax_controller.cpp, sig_mask.h).Minor revision to efax-gtk.spec.in (Philip Tellis).MAXMSGBUF is now defined in efax/efaxmsg.c so that it does not exceedPIPE_BUF/2 in size. This is so that a message from efax does notoverrun the pipe used to communicate with efax-gtk.Version 2.2.3 (29th December 2003)-------------Choosing "Enter multiple files" in the File drop-down menu now bringsup the correct dialog (MainWindow::MainWindow() in mainwindow.cpp).The socket server does not now run in its own thread (prog_defs.h,main.cpp, socket_server.h and socket_server.cpp). The need to makefork() calls in order to invoke gs, gv, efax or efix to create, viewand print faxes (and to wait() on these child processes on occasions),and the fact that fax viewing could cause a child process to exit at atime not of the programs choosing (it will be at the time of theuser's choosing), makes it practically impossible to employ threadingand also write the program in a way which is reasonably clean andcomplies with the requirement that any system calls between fork()ingand exec()ing in a multi-threaded program should be designated asasync-signal-safe:IEEE Std 1003.1, 2003 Edition: A process shall be created with a single thread. If a multi-threaded process calls fork(), the new process shall contain a replica of the calling thread and its entire address space, possibly including the states of mutexes and other resources. Consequently, to avoid errors, the child process may only execute async-signal-safe operations until such time as one of the exec functions is called.Clean up of return values of Pipe_fifo::read() and Pipe_fifo::write()(pipes.h and pipes.cpp) and related changes (efax_controller.cpp).Revision of childexit_signalhandler(), and clean-up related code inmain.cpp (mainwindow.cpp and main.cpp).Version 2.2.2 (1st November 2003)-------------The pop-up dialog which announces the receipt of a fax from the socketserver will display itself even if efax-gtk is minimised(mainwindow.cpp - MainWindow::fax_received_notify_slot()).The fax lists, socket list and help dialog will be raised if they areselected and have already been created (mainwindow.h, mainwindow.cpp,helpfile.h and helpfile.cpp).Where a fax is queued for sending in the socket list, a small redcircle will appear in the main program window (mainwindow.h andmainwindow.cpp).When closing, the program will save its window size and whether faxinput is selected as File or Socket.In Socket_server::is_valid_peer(), the parameter is passed by constantreference rather than by value (socket_server.h andsocket_server.cpp).Starting efax-gtk with --version or --help as parameters gives anappropriate response (main.cpp).Clean-up of code using std::stringstream (efax_controller.ccp -EfaxController::make_fax(), EfaxController::save_sent_fax(),EfaxController::cleanup_fax_send_fail(); fax_list.cpp -FaxListDialog::fax_to_ps(); socket_list.cpp -SocketListDialog::set_socket_list_rows()).configure script now checks for libsigc++>= 1.2.3 (libsigc++1.2.2 andless have a bug causing a segfault when a slot deletes the object ofwhich it is a member).Version 2.2.1 (20th October 2003)-------------stringstream is used instead of strstream where available (and a testfor stringstream added to the configure script).Changed user interface for choosing the file to be faxed(mainwindow.h/mainwindow.cpp).PS header in const char PSBEGIN [] in efax/efaxlib.c changed so thatmulti-page postscript files produced by efix will print correctly inCUPS 1.1.19 and above (EPS headers should only occur in single page
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -