Added MC clipboard support

This commit is contained in:
Alexander S. Aganichev 2002-09-07 13:32:04 +00:00
parent 3a37ed6049
commit c00d272bf7
5 changed files with 169 additions and 10 deletions

View File

@ -12,6 +12,15 @@ ______________________________________________________________________
Notes for GoldED+ 1.1.5, /snapshot/ Notes for GoldED+ 1.1.5, /snapshot/
______________________________________________________________________ ______________________________________________________________________
+ Added Midnight Commander compatible clipboard support for UNIX
version. Should only be available if "~/.cedit" directory exist at
GoldED+ startup time. (not tested)
- Fixed problem with charset conversion on calling externutil with
kludges shown and reload option set. You should have reverse charset
table for this message (xlatlocalset to message charset) in order
this fix to work.
- Fixed small bug in the Crahmail/Crashecho parser when the last - Fixed small bug in the Crahmail/Crashecho parser when the last
address may left unread. address may left unread.

View File

@ -140,6 +140,7 @@ gutlos2 cpp all bco wco emx
gutlos2m cpp all bco wco emx gutlos2m cpp all bco wco emx
gutlwin cpp all bcx cyg gutlwin cpp all bcx cyg
gutlwinm cpp all bcx cyg gutlwinm cpp all bcx cyg
gutlunix cpp all lnx
## Low-level text video ## Low-level text video
gvidbase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg gvidbase cpp all nov bcd bco bcx wcn wco wcx lnx emx djg rsx cyg

View File

@ -37,6 +37,7 @@
#include <gstrall.h> #include <gstrall.h>
#include <gasmamis.h> #include <gasmamis.h>
#include <gsndall.h> #include <gsndall.h>
#include <gfilutil.h>
// ------------------------------------------------------------------ // ------------------------------------------------------------------
@ -256,7 +257,7 @@ int gsnd::open(const char* file) {
if(file_open) if(file_open)
close(); close();
char buf[_MAX_PATH]; char buf[GMAXPATH+sizeof("open alias noise wait")];
sprintf(buf, "open %s alias noise wait", file); sprintf(buf, "open %s alias noise wait", file);
if(g_send_mci_string(buf, NULL)) { if(g_send_mci_string(buf, NULL)) {
file_open = true; file_open = true;

View File

@ -33,11 +33,6 @@
#include <gdefs.h> #include <gdefs.h>
// ------------------------------------------------------------------
#if defined(__WIN32__) || defined(__OS2__) || defined(__DJGPP__)
// ------------------------------------------------------------------ // ------------------------------------------------------------------
#define GUTLOS_FUNCS 1 #define GUTLOS_FUNCS 1
@ -81,7 +76,3 @@ char g_toupper(char);
#endif #endif
// ------------------------------------------------------------------ // ------------------------------------------------------------------
#endif
// ------------------------------------------------------------------

157
goldlib/gall/gutlunix.cpp Normal file
View File

@ -0,0 +1,157 @@
// This may look like C code, but it is really -*- C++ -*-
// ------------------------------------------------------------------
// The Goldware Library
// Copyright (C) 1999 Alexander S. Aganichev
// ------------------------------------------------------------------
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this program; if not, write to the Free
// Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
// MA 02111-1307, USA
// ------------------------------------------------------------------
// $Id$
// ------------------------------------------------------------------
// Midnight Commander compatible clipboard.
// ------------------------------------------------------------------
#include <cstdlib>
#include <cstdio>
#include <gstrall.h>
#include <gmemdbg.h>
#include <gutlos.h>
#include <gmemi86.h>
#include <gfilutil.h>
// ------------------------------------------------------------------
#define CLIPDIR "~/.cedit"
#define CLIPFILE "~/.cedit/cooledit.clip"
// ------------------------------------------------------------------
int g_init_os(int flags) {
NW(flags);
return 0;
}
// ------------------------------------------------------------------
void g_deinit_os(void) {
// do nothing
}
// ------------------------------------------------------------------
void g_init_title(char *tasktitle, int titlestatus) {
NW(tasktitle); NW(titlestatus);
}
// ------------------------------------------------------------------
void g_increase_priority(void) {
// Do nothing
}
// ------------------------------------------------------------------
void g_set_ostitle(char* title, word dx) {
NW(title); NW(dx);
}
// ------------------------------------------------------------------
void g_set_osicon(void) {
// do nothing
}
// ------------------------------------------------------------------
bool g_is_clip_available(void) {
return is_dir(CLIPDIR);
}
// ------------------------------------------------------------------
char* g_get_clip_text(void) {
size_t size = GetFilesize(CLIPFILE);
char *text = (char *)throw_malloc(size+1);
*text = NUL;
FILE *f = fopen(CLIPFILE, "rt");
if(f != NULL) {
fread(text, 1, size, f);
text[size] = NUL;
fclose(f);
}
return text;
}
// ------------------------------------------------------------------
int g_put_clip_text(const char* buf) {
FILE *f = fopen(CLIPFILE, "wt");
if(f != NULL) {
fwrite(buf, 1, strlen(buf), f);
fclose(f);
return 0;
}
return -1;
}
// ------------------------------------------------------------------
void g_get_ostitle_name(char* title) {
*title = NUL;
}
// ------------------------------------------------------------------
void g_set_ostitle_name(char* title, int mode) {
NW(title); NW(mode);
}
// ------------------------------------------------------------------
int g_send_mci_string(char* str, char* his_buffer) {
NW(str); NW(his_buffer);
return 1;
}
// ------------------------------------------------------------------