diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2018-01-23 16:53:51 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2018-01-23 16:53:51 (GMT) |
commit | 51e1f85047b34f095ed69a3024d696997d2667c8 (patch) | |
tree | a8d46838982aa78a35653c10d0b7370d751d6181 /xpa/clipboard.c | |
parent | 0c198f7902ee997dd8ec3631e8ff1c385257014d (diff) | |
download | blt-51e1f85047b34f095ed69a3024d696997d2667c8.zip blt-51e1f85047b34f095ed69a3024d696997d2667c8.tar.gz blt-51e1f85047b34f095ed69a3024d696997d2667c8.tar.bz2 |
upgrade xpa
Diffstat (limited to 'xpa/clipboard.c')
-rw-r--r-- | xpa/clipboard.c | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/xpa/clipboard.c b/xpa/clipboard.c deleted file mode 100644 index 68df675..0000000 --- a/xpa/clipboard.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - * Copyright (c) 1999-2003 Smithsonian Astrophysical Observatory - */ - -/* - * - * remote.c -- xpa access control list management - * - */ - -#include <xpap.h> - -/* - *---------------------------------------------------------------------------- - * - * - * Private Routines - * - * - *---------------------------------------------------------------------------- - */ - -#ifdef ANSI_FUNC -static XPAClip -ClipBoardNew(XPA xpa, char *name) -#else -static XPAClip ClipBoardNew(xpa, name) - XPA xpa; - char *name; -#endif -{ - XPAClip cur, xnew; - if( (xnew = (XPAClip)xcalloc(1, sizeof(XPAClipRec))) == NULL ) - return(NULL); - - /* fill in record structure */ - xnew->name = xstrdup(name); - xnew->ip = xpa->comm->cmdip; - - /* add to the end of list */ - if( xpa->cliphead == NULL ){ - xpa->cliphead = xnew; - } - else{ - for(cur=xpa->cliphead; cur->next!=NULL; cur=cur->next){ - ; - } - cur->next = xnew; - } - return xnew; -} - -#ifdef ANSI_FUNC -static XPAClip -ClipBoardLookup(XPA xpa, char *name) -#else -static XPAClip ClipBoardLookup(xpa, name) - XPA xpa; - char *name; -#endif -{ - XPAClip cur; - - /* look for reserved keywords that have callbacks */ - for(cur=xpa->cliphead; cur!=NULL; cur=cur->next){ - if( !strcmp(name, cur->name) && (xpa->comm->cmdip == cur->ip) ){ - return(cur); - } - } - return NULL; -} - -#ifdef ANSI_FUNC -static int -ClipBoardAdd(XPA xpa, char *name, char *paramlist, char *buf) -#else -static int -ClipBoardAdd(xpa, name, paramlist, buf) - XPA xpa; - char *name; - char *paramlist; - char *buf; -#endif -{ - XPAClip cur; - if( !(cur = ClipBoardLookup(xpa, name)) ) - cur = ClipBoardNew(xpa, name); - if( !cur ) - return -1; - if( cur->value ) - xfree(cur->value); - cur->value = xstrdup(buf); - return 0; -} - -#ifdef ANSI_FUNC -static int -ClipBoardAppend(XPA xpa, char *name, char *paramlist, char *buf) -#else -static int -ClipBoardAppend(xpa, name, paramlist, buf) - XPA xpa; - char *name; - char *paramlist; - char *buf; -#endif -{ - XPAClip cur; - if( !(cur = ClipBoardLookup(xpa, name)) ) - cur = ClipBoardNew(xpa, name); - if( !cur ) - return -1; - if( cur->value ){ - if( (cur->value = (char *)xrealloc(cur->value, - strlen(cur->value)+strlen(buf)+1)) ) - strcat(cur->value, buf); - else - return -1; - } - else{ - cur->value = xstrdup(buf); - } - return 0; -} - -#ifdef ANSI_FUNC -static int -ClipBoardDelete(XPA xpa, char *name, char *paramlist) -#else -static int -ClipBoardDelete(xpa, name, paramlist) - XPA xpa; - char *name; - char *paramlist; -#endif -{ - XPAClip cur; - if( (cur = ClipBoardLookup(xpa, name)) ){ - ClipBoardFree(xpa, cur); - return 0; - } - else - return -1; -} - -/* - *---------------------------------------------------------------------------- - * - * - * Semi-Public Routines (used by xpa.c and command.c) - * - * - *---------------------------------------------------------------------------- - */ - -#ifdef ANSI_FUNC -int -ClipBoardFree(XPA xpa, XPAClip clip) -#else -int ClipBoardFree(xpa, clip) - XPA xpa; - XPAClip clip; -#endif -{ - XPAClip cur; - - if( !clip ) - return 0; - /* remove from list */ - if( xpa->cliphead ){ - if( xpa->cliphead == clip ){ - xpa->cliphead = clip->next; - } - else{ - for(cur=xpa->cliphead; cur!=NULL; cur=cur->next){ - if( cur->next == clip ){ - cur->next = clip->next; - break; - } - } - } - } - if( clip->name ) xfree(clip->name); - if( clip->value ) xfree(clip->value); - xfree(clip); - return 1; -} - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPAReceiveClipboard - * - * Purpose: add a new clipboard entry - * - * Returns: xpa callback error codes - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -int -XPAReceiveClipboard (void *client_data, void *call_data, char *paramlist, - char *buf, size_t len) -#else -int XPAReceiveClipboard(client_data, call_data, paramlist, buf, len) - void *client_data; - void *call_data; - char *paramlist; - char *buf; - size_t len; -#endif -{ - XPA xpa = (XPA)call_data; - char cmd[SZ_LINE]; - char name[SZ_LINE]; - char tbuf[SZ_LINE]; - int lp=0; - int status = -1; - - *cmd = '\0'; - *name = '\0'; - if( paramlist && *paramlist ){ - if( !word(paramlist, cmd, &lp) || !word(paramlist, name, &lp) ) - goto done; - /* lookup the command */ - if( !strcmp(cmd, "add") ){ - status = ClipBoardAdd(xpa, name, ¶mlist[lp], buf); - } - else if( !strncmp(cmd, "app", 3) ){ - status = ClipBoardAppend(xpa, name, ¶mlist[lp], buf); - } - else if( !strncmp(cmd, "del", 3) ){ - status = ClipBoardDelete(xpa, name, ¶mlist[lp]); - } -#ifdef LATER - else if( !strncmp(cmd, "loa", 3) ){ - status = ClipBoardLoad(xpa, name, ¶mlist[lp], buf); - } - else if( !strncmp(cmd, "sav", 3) ){ - status = ClipBoardSave(xpa, name, ¶mlist[lp]); - } -#endif - } - -done: - if( status < 0 ){ - if( !*cmd || !*name ){ - XPAError(xpa, "XPA clipboard requires: add|append|delete name\n"); - } - else{ - snprintf(tbuf, SZ_LINE, - "XPA clipboard invalid cmd or name: %s %s\n", cmd, name); - XPAError(xpa, tbuf); - } - } - return(status); -} - -/* - *---------------------------------------------------------------------------- - * - * Routine: XPASendClipboard - * - * Purpose: return clipboard information - * - * Returns: 0 for success, -1 for failure - * - *---------------------------------------------------------------------------- - */ -#ifdef ANSI_FUNC -int -XPASendClipboard (void *client_data, void *call_data, char *paramlist, - char **buf, size_t *len) -#else -int XPASendClipboard(client_data, call_data, paramlist, buf, len) - void *client_data; - void *call_data; - char *paramlist; - char **buf; - size_t *len; -#endif -{ - XPA xpa = (XPA)call_data; - char name[SZ_LINE]; - char tbuf[SZ_LINE]; - int lp=0; - int status = -1; - XPAClip cur; - - *name = '\0'; - if( paramlist && *paramlist ){ - if( !word(paramlist, name, &lp) ) - goto done; - if( !(cur = ClipBoardLookup(xpa, name)) ) - goto done; - if( cur->value ){ - send(xpa_datafd(xpa), cur->value, strlen(cur->value), 0); - status = 0; - } - } - -done: - if( status < 0 ){ - if( !*name ){ - XPAError(xpa, "XPA clipboard requires: name\n"); - } - else{ - snprintf(tbuf, SZ_LINE, "XPA clipboard invalid name: %s\n", name); - XPAError(xpa, tbuf); - } - } - return(status); -} - -/* - *---------------------------------------------------------------------------- - * - * - * Public Routines - * - * - *---------------------------------------------------------------------------- - */ - |