home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume18 / ftptool-4.3 / part10 < prev    next >
Text File  |  1992-08-18  |  52KB  |  2,101 lines

  1. Path: uunet!usc!elroy.jpl.nasa.gov!swrinde!mips!msi!dcmartin
  2. From: Mike.Sullivan@EBay.Sun.COM (Mike Sullivan {AKA Simon BarSinister})
  3. Newsgroups: comp.sources.x
  4. Subject: v18i092: Ftptool 4.3 (XVIEW), Part10/12
  5. Message-ID: <1992Aug18.153754.29083@msi.com>
  6. Date: 18 Aug 92 15:37:54 GMT
  7. References: <csx-18i083-ftptool-4.3@uunet.UU.NET>
  8. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  9. Organization: Molecular Simulations, Inc.
  10. Lines: 2087
  11. Approved: dcmartin@msi.com
  12. Originator: dcmartin@fascet
  13.  
  14. Submitted-by: Mike.Sullivan@EBay.Sun.COM (Mike Sullivan {AKA Simon BarSinister})
  15. Posting-number: Volume 18, Issue 92
  16. Archive-name: ftptool-4.3/part10
  17.  
  18. #!/bin/sh
  19. # this is part.10 (part 10 of a multipart archive)
  20. # do not concatenate these parts, unpack them in order with /bin/sh
  21. # file host_list.c continued
  22. #
  23. if test ! -r _shar_seq_.tmp; then
  24.     echo 'Please unpack part 1 first!'
  25.     exit 1
  26. fi
  27. (read Scheck
  28.  if test "$Scheck" != 10; then
  29.     echo Please unpack part "$Scheck" next!
  30.     exit 1
  31.  else
  32.     exit 0
  33.  fi
  34. ) < _shar_seq_.tmp || exit 1
  35. if test ! -f _shar_wnt_.tmp; then
  36.     echo 'x - still skipping host_list.c'
  37. else
  38. echo 'x - continuing file host_list.c'
  39. sed 's/^X//' << 'SHAR_EOF' >> 'host_list.c' &&
  40. X            netrc_filename, (char *)NULL);
  41. X        return;
  42. X    }
  43. X    /* read each line */
  44. X    /* looking for "machine" surrounded by white space */
  45. X    /* if we find it, then look for other tokens until EOF or "machine" */
  46. X    /* look for "login" name or "password" name */
  47. X    /* machine ray login demo password mypassword */
  48. X
  49. X    for (;;) {
  50. X        switch(netrc_token(fp)) {
  51. X        case MACHINE:
  52. X            if (foundmachine)
  53. X                add_netrc(machine, login, password);
  54. X            foundmachine = 1;
  55. X            strcpy(machine, "");
  56. X            strcpy(login, "");
  57. X            strcpy(password, "");
  58. X            if (fscanf(fp, "%s", machine) == EOF) {
  59. X                goto out;
  60. X            }
  61. X            break;
  62. X        case LOGIN:
  63. X            if (!foundmachine || fscanf(fp, "%s", login) == EOF) {
  64. X                footer_message("Error in .netrc", (char *)NULL);
  65. X                goto out;
  66. X            }
  67. X            break;
  68. X        case PASSWORD:
  69. X            if (!foundmachine || fscanf(fp, "%s", password) == EOF) {
  70. X                footer_message("Error in .netrc", (char *)NULL);
  71. X                goto out;
  72. X            }
  73. X            break;
  74. X        case EOF:
  75. X            add_netrc(machine, login, password);
  76. X            goto out;
  77. X        default:
  78. X            break;
  79. X        }
  80. X    }
  81. X
  82. out:
  83. X    fclose(fp);
  84. X    return;
  85. }
  86. X
  87. #ifdef USE_PROTOTYPES
  88. void add_netrc(char *machine, char *login, char *password)
  89. #else
  90. void add_netrc(machine, login, password)
  91. char    *machine;
  92. char    *login;
  93. char    *password;
  94. #endif
  95. {
  96. X    if (machine[0] == '\0' || login[0] == '\0') {
  97. X        footer_message("Incomplete .netrc entry", (char *)NULL);
  98. X        return;
  99. X    }
  100. X    sprintf(scratch, "%s %s", machine, login);
  101. X    if (gethostlist(hostlist_head, scratch)) {
  102. X        footer_message("Alias \"%s\" already exists.", scratch, (char *)NULL);
  103. X        return;
  104. X    }
  105. X    if ((hostlist_head = add_hostalias(hostlist_head, scratch, "Never",
  106. X        DEFAULT_PROXY, machine, login, password, BINARY,
  107. X        ".", ".", DEFAULT_PARSE, "From .netrc")) == NULL) {
  108. X        xv_set(host_window.frame, 
  109. X            FRAME_LEFT_FOOTER, "Add failed",
  110. X            NULL);
  111. X        return;
  112. X    }
  113. X    list_changed++;
  114. X    reload_host_list_menu(hostlist_head);
  115. }
  116. X
  117. #ifdef USE_PROTOTYPES
  118. char key_to_char(char *key)
  119. #else
  120. char key_to_char(key)
  121. char    *key;
  122. #endif
  123. {
  124. X    char    *tmp = key;
  125. X    char    c = '\0';
  126. X
  127. X    while (*tmp) {
  128. X        c ^= *tmp;
  129. X        tmp++;
  130. X    }
  131. X    c &= 0x7f;
  132. X    return c;
  133. }
  134. X
  135. #ifdef USE_PROTOTYPES
  136. char *ftptool_encrypt(char *s, char *key)
  137. #else
  138. char *ftptool_encrypt(s, key)
  139. char    *s;
  140. char    *key;
  141. #endif
  142. {
  143. X    char    k;
  144. X    char    c;
  145. X    char    *es;
  146. X    char    *scanstr;
  147. X    char    *changestr;
  148. X
  149. X    k = key_to_char(key);
  150. X    es = (char *)malloc((unsigned int)(2 * strlen(s) + 1));
  151. X    if (es == NULL) {
  152. X        fprintf(stderr, "Out of memory\n");
  153. X        return NULL;
  154. X    }
  155. X    scanstr = s;
  156. X    changestr = es;
  157. X    while (*scanstr) {
  158. X        c = *scanstr++ ^ k;
  159. X        if (iscntrl(c)) {
  160. X            *changestr++ = '^';
  161. X            if (c == '\177')
  162. X                *changestr++ = '?';
  163. X            else
  164. X                *changestr++ = c + 'A';
  165. X        } else if (c == '^') {
  166. X            *changestr++ = '^';
  167. X            *changestr++ = '~';
  168. X        } else {
  169. X            *changestr++ = c;
  170. X        }
  171. X    }
  172. X    *changestr = '\0';
  173. X    return es;
  174. }
  175. X
  176. #ifdef USE_PROTOTYPES
  177. char *ftptool_decrypt(char *s, char *key)
  178. #else
  179. char *ftptool_decrypt(s, key)
  180. char    *s;
  181. char    *key;
  182. #endif
  183. {
  184. X    char    k;
  185. X    char    c;
  186. X    char    *ds;
  187. X    char    *scanstr;
  188. X    char    *changestr;
  189. X
  190. X    k = key_to_char(key);
  191. X    ds = (char *)malloc((unsigned int)(strlen(s) + 1));
  192. X    if (ds == NULL) {
  193. X        fprintf(stderr, "Out of memory\n");
  194. X        return NULL;
  195. X    }
  196. X    scanstr = s;
  197. X    changestr = ds;
  198. X    while (*scanstr) {
  199. X        c = *scanstr++;
  200. X        if (c != '^') {
  201. X            *changestr++ = c ^ k;
  202. X        } else {
  203. X            c = *scanstr++;
  204. X            if (c == '?') {
  205. X                *changestr = '\177';
  206. X            } else if (c == '~') {
  207. X                *changestr = '^';
  208. X            } else {
  209. X                *changestr = c - 'A';
  210. X            }
  211. X            *changestr++ ^= k;
  212. X        }
  213. X    }
  214. X    *changestr = '\0';
  215. X    return ds;
  216. }
  217. X
  218. #ifdef USE_PROTOTYPES
  219. char *old_ftptool_decrypt(char *s, char *key)
  220. #else
  221. char *old_ftptool_decrypt(s, key)
  222. char    *s;
  223. char    *key;
  224. #endif
  225. {
  226. X    char    k;
  227. X    char    *ds;
  228. X    char    *tmp;
  229. X
  230. X    k = key_to_char(key);
  231. X    ds = strdup(s);
  232. X    if (ds == NULL) {
  233. X        fprintf(stderr, "Out of memory\n");
  234. X        return NULL;
  235. X    }
  236. X    tmp = ds;
  237. X    while (*tmp) {
  238. X        *tmp++ ^= k;
  239. X    }
  240. X    return ds;
  241. }
  242. X
  243. #ifdef USE_PROTOTYPES
  244. struct hostlist *sort_hostlist(struct hostlist *head)
  245. #else
  246. struct hostlist *sort_hostlist(head)
  247. struct hostlist *head;
  248. #endif
  249. {
  250. X    struct hostlist *tmp;
  251. X    struct hostlist *newhead, *current;
  252. X    int    rval;
  253. X
  254. X    newhead = new_hostlist();
  255. X    if (newhead == NULL)
  256. X        return head;
  257. X
  258. X    while (head->next != NULL) {
  259. X        /* remove first element */
  260. X        current = head->next;
  261. X        head->next = current->next;
  262. X        current->next = NULL;
  263. X        /* insert in proper place */
  264. X        for (tmp = newhead; tmp->next != NULL; tmp = tmp->next)  {
  265. X            if (ignore_case)
  266. X                rval = strcasecmp(current->aliasname, tmp->next->aliasname);
  267. X            else
  268. X                rval = strcmp(current->aliasname, tmp->next->aliasname);
  269. X            if (rval < 0) {
  270. X                break;
  271. X            }
  272. X        }
  273. X        current->next = tmp->next;
  274. X        tmp->next = current;
  275. X    }
  276. X    free_hostlist(head);
  277. X    return newhead;
  278. }
  279. SHAR_EOF
  280. echo 'File host_list.c is complete' &&
  281. chmod 0644 host_list.c ||
  282. echo 'restore of host_list.c failed'
  283. Wc_c="`wc -c < 'host_list.c'`"
  284. test 30792 -eq "$Wc_c" ||
  285.     echo 'host_list.c: original size 30792, current size' "$Wc_c"
  286. rm -f _shar_wnt_.tmp
  287. fi
  288. # ============= ftptool.info ==============
  289. if test -f 'ftptool.info' -a X"$1" != X"-c"; then
  290.     echo 'x - skipping ftptool.info (File already exists)'
  291.     rm -f _shar_wnt_.tmp
  292. else
  293. > _shar_wnt_.tmp
  294. echo 'x - extracting ftptool.info (Text)'
  295. sed 's/^X//' << 'SHAR_EOF' > 'ftptool.info' &&
  296. #################################################
  297. #    ftptool.info    
  298. #
  299. #    Install this in $OPENWINHOME/lib/help so you
  300. #   can use the Help/F1 key for spot help.
  301. ################################################
  302. X
  303. :FileButton
  304. File 
  305. X
  306. Provides these functions:
  307. X
  308. X - Copy a file or directory from the remote host 
  309. X   to the local host
  310. X - Copy a file or directory from the local host 
  311. X   to the remote host
  312. X - Uncompress selected local files
  313. X - Extract selected local tar files
  314. X - Compress selected local files
  315. X - Create a tar file of the selected items
  316. X - Show information about ftptool
  317. #
  318. :FileCopyRemote
  319. Copy from Remote to local
  320. X
  321. Copy the selected files from the remote host to 
  322. the local host. Normal files or directories may
  323. be copied.
  324. You will not be able to select this if you are
  325. not connected to a remote host or you have no
  326. remote files or directories selected.
  327. #
  328. :FileCopyLocal
  329. Copy from Local to Remote
  330. X
  331. Copy the selected files from the local host to 
  332. the remote host. Normal files or directories may
  333. be copied.
  334. You will not be able to select this if you are
  335. not connected to a remote host or you have no
  336. local files or directories selected.
  337. #
  338. :FileDeleteRemote
  339. Delete Remote File
  340. X
  341. Delete the selected remote files(s). Directories
  342. will be recursively deleted. If you have set
  343. the "Confirm Deletes" property, then you will
  344. be asked whether you want to really delete each
  345. file (this _may_ be quite annoying for
  346. directories!). There is _no way_ to retrieve
  347. deleted files.
  348. #
  349. :FileDeleteLocal
  350. Delete Local File
  351. X
  352. Delete the selected local files(s). Directories
  353. will be recursively deleted. If you have set
  354. the "Confirm Deletes" property, then you will
  355. be asked whether you want to really delete each
  356. file (this _may_ be quite annoying for
  357. directories!). There is _no way_ to retrieve
  358. deleted files.
  359. #
  360. :FileCompress
  361. Compress File
  362. X
  363. Compress the selected local files. Only normal
  364. files may be compressed. The compressed files
  365. will have a '.Z' extension.
  366. X
  367. You will not be able to select this if you have
  368. no local files selected.
  369. #
  370. :FileUncompress
  371. Uncompress File
  372. X
  373. Uncompress the selected local files. Only normal
  374. files may be uncompressed. Compressed files must
  375. end in '.Z'.
  376. X
  377. You will not be able to select this if you have
  378. no local files selected.
  379. #
  380. :FileCreateTar
  381. Create Tar File
  382. X
  383. Place the selected local files and directories in
  384. a tar file. You will be asked for the name of
  385. the tarfile. Use a name ending in '.tar', or 
  386. Ftptool will not understand it is a tar file
  387. if you try to View it later. The original files
  388. will not be removed.
  389. You will not be able to select this if you have
  390. no local files or directories selected.
  391. #
  392. :FileExtractTar
  393. Extract Tar File
  394. X
  395. If the files selected are compressed, they will
  396. first be uncompressed. If they end in '.tar', 
  397. they are assumed to be tar archives. A tar file
  398. viewer is started. The default viewer allows
  399. listing of the contents of the tar file, and
  400. extracting the contents into a specified directory.
  401. X
  402. You will not be able to select this if you have
  403. no local files selected.
  404. #
  405. :FileAbout
  406. About Ftptool
  407. X
  408. This displays a window with information about 
  409. ftptool.
  410. #
  411. :ViewButton
  412. View
  413. X
  414. Provides these functions:
  415. X
  416. X - View a remote file
  417. X - View a local file
  418. X - View the local directory pop-up
  419. X - View the ftp session log
  420. X - View the host information pop-up
  421. #
  422. :ViewRemote
  423. Remote File
  424. X
  425. Copies the remote file(s) to /var/tmp on the 
  426. local machine. It then tries to determine the
  427. file type, and start the appropriate viewer.
  428. The file types understood are:
  429. X
  430. X - compressed - this is determined from the
  431. X   file itself, although it must have a '.Z'
  432. X   extension for uncompress to work.
  433. X - postscript - if the first two characters
  434. X   are '%!', then it assumed to be a postscript
  435. X   file, and pageview is used to view it.
  436. X - tar - this is determined from the extension,
  437. X   which must be '.tar' (not required by tar,
  438. X   currently just an easy way for ftptool to
  439. X   determine the type). As ftptool gets more
  440. X   intelligent, more archives may be understood.
  441. X   The default viewer is ftptool for archives,
  442. X   but may be changed by a property.
  443. X - other - anything else. The default viewer
  444. X   for these files is textedit, but may be
  445. X   changed by a property.
  446. X
  447. You will not be able to select this if you
  448. are not currently connected, or do not have
  449. any remote files selected.
  450. #
  451. :ViewLocal
  452. Local File
  453. X
  454. The current files are examined to determine the
  455. file type, then the appropriate viewer is 
  456. started.  The file types understood are:
  457. X
  458. X - compressed - this is determined from the
  459. X   file itself, although it must have a '.Z'
  460. X   extension for uncompress to work.
  461. X - postscript - if the first two characters
  462. X   are '%!', then it assumed to be a postscript
  463. X   file, and pageview is used to view it.
  464. X - tar - this is determined from the extension,
  465. X   which must be '.tar' (not required by tar,
  466. X   currently just an easy way for ftptool to
  467. X   determine the type). As ftptool gets more
  468. X   intelligent, more archives may be understood.
  469. X   The default viewer is ftptool for archives,
  470. X   but may be changed by a property.
  471. X - other - anything else. The default viewer
  472. X   for these files is textedit, but may be
  473. X   changed by a property.
  474. X
  475. You will not be able to select this if you
  476. do not have any local files selected.
  477. #
  478. :ViewLocalDirectory
  479. Local Directory List
  480. X
  481. Display the local directory window.
  482. #
  483. :ViewSessionLog
  484. Session Log
  485. X
  486. Display the FTP session log (log of FTP
  487. responses to Ftptool). You can only select this
  488. if you have enabled logging.
  489. #
  490. :ViewCurrentHost
  491. Host Information
  492. X
  493. Display the Host Information pop-up.
  494. #
  495. :EditButton
  496. Edit
  497. X
  498. Provides these functions:
  499. X
  500. X - Add to your personal host list
  501. X - Change an entry in the host list
  502. X - Delete an entry from the host list
  503. #
  504. :EditAdd
  505. Add to Host List
  506. X
  507. Add the information listed in the host list
  508. window to your list of hosts. Addition is
  509. based on the value given in the Host Alias
  510. field. If you try to add an alias that
  511. already exists, you will be asked if you really
  512. want to replace the existing entry.
  513. #
  514. :EditChange
  515. Change Host List Entry
  516. X
  517. Add the information listed in the host list
  518. window to your list of hosts. Addition is
  519. based on the value given in the Host Alias
  520. field. If you try to add an alias that
  521. already exists, you will not be asked if you 
  522. really want to replace the existing entry.
  523. #
  524. :EditDelete
  525. Delete Host List Entry
  526. X
  527. Delete the entry in the host list that matches
  528. the value in the Host Alias field. Note that
  529. selecting an entry is not required to delete
  530. it, although selecting it will fill in the
  531. host information. A delete operation will
  532. then delete that entry.
  533. #
  534. :PropertiesButton
  535. Properties
  536. X
  537. Provides these functions:
  538. X
  539. X - View Ftptool properties.
  540. X - View local file properties
  541. X - View remote file properties.
  542. #
  543. :PropertiesTool
  544. Tool
  545. X
  546. Display Ftptool property window. This includes
  547. how to sort, and various FTP options.
  548. #
  549. :PropertiesLocal
  550. Local File
  551. X
  552. Display local file properties, such as owner
  553. and permissions.
  554. X
  555. This will not be selectable if no local file is
  556. currently selected.
  557. #
  558. :PropertiesRemote
  559. Remote File
  560. X
  561. Display remote file properties, such as owner
  562. and permissions.
  563. X
  564. This will not be selectable if you are not
  565. connected or no remote file is currently 
  566. selected.
  567. #
  568. :ConnectButton
  569. Connect
  570. X
  571. Connect to a remote host. If the Host 
  572. Information window is not displayed, selecting
  573. this button will just display the window. 
  574. Otherwise, it will attempt to connect to the
  575. host specified in the Host Information
  576. Window.
  577. #
  578. :DisconnectButton
  579. Disconnect
  580. X
  581. Disconnect from the remote host. 
  582. #
  583. :AbortButton
  584. Abort
  585. X
  586. Selecting Abort will abort the transfer after
  587. the current file is finished.
  588. X
  589. You will not be able to select abort unless you
  590. are transferring files. Aborting a single file
  591. transfer is not useful.
  592. #
  593. :RemoteDirectory
  594. Remote Directory
  595. X
  596. This field initially displays the current 
  597. remote directory. You can change to a new 
  598. directory by typing in a directory name and 
  599. pressing return.
  600. #
  601. :RemoteList
  602. Remote File List
  603. X
  604. This list displays the remote files in the
  605. current remote directory. The time the
  606. file was last modified, the size, and the
  607. name of the file is shown. Directories, in
  608. the fashion of 'ls', have a '/' appended
  609. to the name, and are also in bold.
  610. X
  611. If the listing from the remote machine does
  612. not appear to be 'ls' style output, only
  613. the filename will be displayed. All other
  614. properties are unknown for non-UNIX 
  615. machines
  616. X
  617. Double-clicking on a directory will change
  618. to that directory.
  619. #
  620. :RemoteCDButton
  621. cd
  622. X
  623. Change to the remote directory specified by 
  624. the text, by the directory selected, or up
  625. one level (to the parent).
  626. #
  627. :RemoteCDButtonText
  628. Use Text
  629. X
  630. Select this to change to the directory you 
  631. typed in to the text field. This will be
  632. the default if you have not selected a 
  633. remote directory from the list, or if you
  634. have more than one selected.
  635. #
  636. :RemoteCDButtonSelection
  637. Use Selection
  638. X
  639. Change to the remote directory selected from
  640. the list. This is only active if you have
  641. only one item selected, and it is a 
  642. directory. If so, it is the default.
  643. X
  644. You can also double-click on a directory entry 
  645. to change to it. This does not require you
  646. to clear all other selections first.
  647. #
  648. :RemoteCDButtonUp
  649. Up One Level
  650. X
  651. Change to the parent of this directory.
  652. #
  653. :RemoteMenuCDSelection
  654. CD to Selection
  655. X
  656. Change to the remote directory selected from
  657. the list. This is only active if you have
  658. only one item selected, and it is a 
  659. directory.
  660. X
  661. You can also double-click on a directory entry 
  662. to change to it. This does not require you
  663. to clear all other selections first.
  664. #
  665. :RemoteMenuCDUp
  666. Up One Level
  667. X
  668. Change to the parent of this directory.
  669. #
  670. :RemoteMenuCopyLocal
  671. Copy to Local
  672. X
  673. Copy the selected files from the remote host to 
  674. the local host. Normal files or directories may
  675. be copied.
  676. You will not be able to select this if you are
  677. not connected to a remote host or you have no
  678. remote files or directories selected.
  679. #
  680. :RemoteMenuView
  681. View File
  682. X
  683. Copies the remote file(s) to /var/tmp on the 
  684. local machine. It then tries to determine the
  685. file type, and start the appropriate viewer.
  686. The file types understood are:
  687. X
  688. X - compressed - this is determined from the
  689. X   file itself, although it must have a '.Z'
  690. X   extension for uncompress to work.
  691. X - postscript - if the first two characters
  692. X   are '%!', then it assumed to be a postscript
  693. X   file, and pageview is used to view it.
  694. X - tar - this is determined from the extension,
  695. X   which must be '.tar' (not required by tar,
  696. X   currently just an easy way for ftptool to
  697. X   determine the type). As ftptool gets more
  698. X   intelligent, more archives may be understood.
  699. X   The default viewer is ftptool for archives,
  700. X   but may be changed by a property.
  701. X - other - anything else. The default viewer
  702. X   for these files is textedit, but may be
  703. X   changed by a property.
  704. X
  705. You will not be able to select this if you
  706. are not currently connected, or do not have
  707. any remote files selected.
  708. #
  709. :RemoteMenuProperties
  710. Properties
  711. X
  712. Display remote file properties, such as owner
  713. and permissions.
  714. X
  715. This will not be selectable if you are not
  716. connected or no remote file is currently 
  717. selected.
  718. #
  719. :LocalDirectory
  720. Local Directory
  721. X
  722. This field initially displays the current 
  723. local directory. You can change to a new 
  724. directory by typing in a directory name 
  725. and pressing return.
  726. #
  727. :LocalList
  728. Local File List
  729. X
  730. This list displays the local files in the
  731. current local directory. The time the
  732. file was last modified, the size, and the
  733. name of the file is shown. Directories, in
  734. the fashion of 'ls', have a '/' appended
  735. to the name, and are also in bold.
  736. X
  737. Double-clicking on a directory will change
  738. to that directory.
  739. #
  740. :LocalCDButton
  741. cd
  742. X
  743. Change to the local directory specified by 
  744. the text, by the directory selected, or up
  745. one level (to the parent).
  746. #
  747. :LocalCDButtonText
  748. Use Text
  749. X
  750. Select this to change to the directory you 
  751. typed in to the text field. This will be
  752. the default if you have not selected a 
  753. local directory from the list, or if you
  754. have more than one selected.
  755. #
  756. :LocalCDButtonSelection
  757. Use Selection
  758. X
  759. Change to the local directory selected from
  760. the list. This is only active if you have
  761. only one item selected, and it is a 
  762. directory. If so, it is the default.
  763. X
  764. You can also double-click on a directory entry 
  765. to change to it. This does not require you
  766. to clear all other selections first.
  767. #
  768. :LocalCDButtonUp
  769. Up One Level
  770. X
  771. Change to the parent of this directory.
  772. #
  773. :LocalMenuCDSelection
  774. CD to Selection
  775. X
  776. Change to the local directory selected from
  777. the list. This is only active if you have
  778. only one item selected, and it is a 
  779. directory.
  780. X
  781. You can also double-click on a directory entry 
  782. to change to it. This does not require you
  783. to clear all other selections first.
  784. #
  785. :LocalMenuCDUp
  786. Up One Level
  787. X
  788. Change to the parent of this directory.
  789. #
  790. :LocalMenuCopyRemote
  791. Copy to Remote
  792. X
  793. Copy the selected files from the local host to 
  794. the remote host. Normal files or directories may
  795. be copied.
  796. You will not be able to select this if you are
  797. not connected to a remote host or you have no
  798. local files or directories selected.
  799. #
  800. :LocalMenuView
  801. View File
  802. X
  803. The current files are examined to determine the
  804. file type, then the appropriate viewer is 
  805. started.  The file types understood are:
  806. X
  807. X - compressed - this is determined from the
  808. X   file itself, although it must have a '.Z'
  809. X   extension for uncompress to work.
  810. X - postscript - if the first two characters
  811. X   are '%!', then it assumed to be a postscript
  812. X   file, and pageview is used to view it.
  813. X - tar - this is determined from the extension,
  814. X   which must be '.tar' (not required by tar,
  815. X   currently just an easy way for ftptool to
  816. X   determine the type). As ftptool gets more
  817. X   intelligent, more archives may be understood.
  818. X   The default viewer is ftptool for archives,
  819. X   but may be changed by a property.
  820. X - other - anything else. The default viewer
  821. X   for these files is textedit, but may be
  822. X   changed by a property.
  823. X
  824. You will not be able to select this if you
  825. do not have any local files selected.
  826. #
  827. :LocalMenuProperties
  828. Properties
  829. X
  830. Display local file properties, such as owner
  831. and permissions.
  832. X
  833. This will not be selectable if no local file 
  834. is currently selected.
  835. #
  836. :SessionLog
  837. Session Log
  838. X
  839. Any output from FTP will be logged here. If hashing
  840. is turned on, then hash marks will appear in this
  841. window for each buffer transferred.
  842. #
  843. :PropertyPassword
  844. Default Password
  845. X
  846. The default password you want ftptool to use when
  847. first starting, and when the password field is
  848. blank. It defaults to user@machine[.domain].
  849. #
  850. :PropertyOptions
  851. FTP Options
  852. X
  853. Several options for FTP:
  854. X - Log session - enables Session Log window
  855. X - Hashing - printing of a '#' character for
  856. X   each buffer transferred. Let's you know
  857. X   something is still happening.
  858. X - Keep connection alive - by default, after
  859. X   15 minutes of inactivity, the ftp 
  860. X   connection will be broken. To prevent this,
  861. X   this option will cause a NOOP command to
  862. X   be sent every 10 minutes of inactivity.
  863. X
  864. The default is to not log, hashing is off, and 
  865. to not keep the connection alive.
  866. #
  867. :PropertyHidden
  868. Hidden Files
  869. X
  870. Hidden files (files beginning with a '.') can
  871. be ignored or shown.
  872. X
  873. The default is to hide hidden files.
  874. #
  875. :PropertyConfirm
  876. Confirm Deletions
  877. X
  878. If TRUE, asks for confirmation when deleting
  879. a file.
  880. #
  881. :PropertySortChoice
  882. Sort remote files by
  883. X
  884. You can sort by filename, modification date,
  885. size, or type.
  886. X
  887. The default is to sort by name.
  888. #
  889. :PropertyLocalSortChoice
  890. Sort local files by
  891. X
  892. You can sort by filename, modification date,
  893. size, or type.
  894. X
  895. The default is to sort by name.
  896. #
  897. :PropertySortDirection
  898. Sort order
  899. X
  900. The sort can be in forward or reverse order.
  901. Specifically, the directions are:
  902. X - alphabetical or reverse alphabetical    
  903. X - least or most recently modified
  904. X - smallest to largest.
  905. X
  906. The default is to sort in alphabetical order.
  907. #
  908. :PropertyViewer
  909. File Viewer
  910. X
  911. The command line to use to view files of
  912. unkonwn types (such as text). This should be
  913. an X program, and will be broken up into
  914. appropriate arguments. '%f' represents the
  915. program name; if not specified, it will 
  916. recieve the filename as the final argument.
  917. X
  918. The default is 'textedit %f'.
  919. #
  920. :PropertyArchiveViewer
  921. Archive Viewer
  922. X
  923. The command line to use to view files of
  924. type tar (probably others in the future). 
  925. This should be an X program, and will be 
  926. broken up into appropriate arguments. 
  927. '%f' represents the program name; if not 
  928. specified, it will recieve the filename 
  929. as the final argument.
  930. X
  931. The default is ftptool.
  932. #
  933. :PropertyPostScriptViewer
  934. PostScript Viewer
  935. X
  936. The command line to use to view files of
  937. type PostScript. This should be an X 
  938. program, and will be broken up into 
  939. appropriate arguments. '%f' represents 
  940. the program name; if not specified, it 
  941. will recieve the filename as the final 
  942. argument.
  943. X
  944. The default is 'pageview %f'.
  945. #
  946. :PropertySortApply
  947. Apply
  948. X
  949. Apply changes. You will be given the option to
  950. apply the changes permanently. If you choose
  951. to do so, your .Xdefaults file will be modified.
  952. A backup will be saved in .Xdefaults.bak.
  953. #
  954. :PropertySortReset
  955. Reset
  956. X
  957. Lose all changes made since the last apply.
  958. #
  959. :HostListWindow
  960. Personal FTP Host List
  961. X
  962. This is your personal FTP host list. It allows
  963. you to save your most recently used sites and
  964. logins in a menu, as the .netrc ftp uses does.
  965. This menu is saved in .ftptoolrc (which is
  966. constructed from .netrc if it doesn't exist)
  967. in ASCII, so you can edit it by hand.
  968. X
  969. Be careful when saving password information, as
  970. it is stored in non-encrypted form! This is
  971. as ftp does. Ftptool will create the .ftptool
  972. rc with mode 600, but it is still a risk. You
  973. might want to only save anonymous ftp passwords
  974. here, and always type your password in when
  975. you connect.
  976. #
  977. :AboutWindow
  978. About Ftptool
  979. X
  980. Displays a message about ftptool. 
  981. X
  982. :FeedbackWindow
  983. Send Feedback
  984. X
  985. Allows you to send mail to the developer
  986. of ftptool. 
  987. #
  988. #
  989. :FileProperty
  990. Ftptool:File Properties
  991. X
  992. Properties of the remote or local file. This is
  993. more than the list will show. It is only updated 
  994. whenever a list element is selected, so it will
  995. only show information about the most recently
  996. selected item.
  997. X
  998. If you have no items selected, you will not be
  999. able to bring up the appropriate property window.
  1000. X
  1001. File properties can not be changed from within
  1002. Ftptool.
  1003. #
  1004. :FilePropertyName
  1005. Name
  1006. X
  1007. The name of the file.
  1008. #
  1009. :FilePropertyOwner
  1010. Owner
  1011. X
  1012. The owner of the file. This will be either a
  1013. user name, or a user id if the name can not
  1014. be determined.
  1015. X
  1016. For non-unix remote hosts, this will show up
  1017. as "unknown".
  1018. #
  1019. :FilePropertyGroup
  1020. Group
  1021. X
  1022. The group of the file. This will be either a
  1023. group name, or a group id if the name can not
  1024. be determined.
  1025. X
  1026. For non-unix remote hosts, this will show up
  1027. as "unknown".
  1028. #
  1029. :FilePropertyModtime
  1030. X
  1031. The last time the file was modified.
  1032. X
  1033. For non-unix remote hosts, this will show up
  1034. as "unknown".
  1035. #
  1036. :FilePropertySize
  1037. Size
  1038. X
  1039. The size of the file in bytes.
  1040. X
  1041. For non-unix remote hosts, this will show up
  1042. as -1.
  1043. #
  1044. :FilePropertyType
  1045. Type
  1046. X
  1047. The type of the file.
  1048. For non-unix remote hosts, this will show up
  1049. as "unknown".
  1050. #
  1051. :FilePropertyUserPerms
  1052. Owner
  1053. X
  1054. The permissions granted to the owner of the
  1055. file.
  1056. X
  1057. For non-unix remote hosts, the check boxes
  1058. will be blank.
  1059. #
  1060. :FilePropertyGroupPerms
  1061. Group
  1062. X
  1063. The permissions granted to users in the
  1064. group of the file.
  1065. X
  1066. For non-unix remote hosts, the check boxes
  1067. will be blank.
  1068. #
  1069. :FilePropertyOtherPerms
  1070. Other
  1071. X
  1072. The permissions granted to users that do not
  1073. own the file and that are not in the file's
  1074. group.
  1075. X
  1076. For non-unix remote hosts, the check boxes
  1077. will be blank.
  1078. #
  1079. :TarFileViewer
  1080. Tar File Viewer
  1081. X
  1082. A simple tar file viewer and extractor.
  1083. #
  1084. :TarFileListContents
  1085. List Contents
  1086. X
  1087. Lists the contents of the tar file to the
  1088. window. 
  1089. #
  1090. :TarFileExtract Files
  1091. Extract Files
  1092. X
  1093. Asks for the directory where you wish to extract 
  1094. contents of the tar file.
  1095. #
  1096. :TarFileNameText
  1097. Directory
  1098. X
  1099. Enter the name of the directory where you wish
  1100. to extract the tar file. You will have the option
  1101. of creating it if it doesn't exist.
  1102. #
  1103. :TarFileNameButton
  1104. Extract
  1105. X
  1106. Begin the extraction.
  1107. #
  1108. :BatchReceiveWindow
  1109. Batch Receive
  1110. X
  1111. The window listing the files pending transfer from
  1112. the remote system to the local one.
  1113. #
  1114. :BatchReceiveList
  1115. Batch Receive List
  1116. X
  1117. The list of files pending transfer to the local
  1118. system. You can delete from the list or start the 
  1119. transfer in the pop-up.
  1120. #
  1121. :BatchReceiveDelete
  1122. Delete
  1123. X
  1124. Delete the selected files from the receive list.
  1125. #
  1126. :BatchReceiveCopy
  1127. Copy to Local
  1128. X
  1129. Copy all files listed in the batch receive list
  1130. to the local system.
  1131. #
  1132. :BatchLoad
  1133. Load
  1134. X
  1135. Load a batch list file (created by Save) into the
  1136. batch list. Discard the current list.
  1137. #
  1138. :BatchSave
  1139. Save
  1140. X
  1141. Save the current batch list into a file which
  1142. can be loaded later with Load.
  1143. #
  1144. :BatchSendWindow
  1145. Batch Send
  1146. X
  1147. The window listing the files pending transfer from
  1148. the local system to the remote one.
  1149. #
  1150. :BatchSendList
  1151. Batch Send List
  1152. X
  1153. The list of files pending transfer to the remote
  1154. system. You can delete from the list or start the 
  1155. transfer in the pop-up.
  1156. #
  1157. :BatchSendDelete
  1158. Delete
  1159. X
  1160. Delete the selected files from the send list.
  1161. #
  1162. :BatchSendCopy
  1163. Copy to Remote
  1164. X
  1165. Copy all files listed in the batch send list to 
  1166. the remote system.
  1167. #
  1168. :LoadSaveBatchFilename
  1169. Load/Save Batch List
  1170. X
  1171. The file to name to load or save into the 
  1172. appropriate batch list.
  1173. #
  1174. :BatchReceiveAdd
  1175. Add to Batch Receive List
  1176. X
  1177. Add the selected remote file(s) to the batch 
  1178. receive list.
  1179. #
  1180. :BatchSendAdd
  1181. Add to Batch Send List
  1182. X
  1183. Add the selected local file(s) to the batch 
  1184. send list.
  1185. #
  1186. :PropertyCacheSize
  1187. Directory Cache Size
  1188. X
  1189. Determines how many directory listings ftptool 
  1190. will remember. This is managed as an LRU cache,
  1191. so everytime you CD into a directory ftptool
  1192. first looks in the cache. If it finds it, then
  1193. instead of actually reading the directory it
  1194. just displays the list in the cache. This can
  1195. speed up directory listings on slow links.
  1196. The larger you make the cache, the more memory
  1197. you will use and (if you keep listing the same
  1198. directories) the less likely you'll have to
  1199. talk to the remote server. However, the larger
  1200. the cache, the less likely it is that you'll
  1201. see any changes being made on the cached
  1202. directories. To effectively not cache at all,
  1203. set this to 1.
  1204. X
  1205. There are two caches, one for local directories
  1206. and one for remote. This property controls
  1207. both (setting it to 2 actually means you'll
  1208. cache 4 directories: 2 local and 2 remote).
  1209. #
  1210. :PropertyCacheInf
  1211. Unlimit Cache Size
  1212. X
  1213. See Directory Cache Size for an explanation.
  1214. This option causes ftptool to cache _all_
  1215. directories. It could be quite a memory
  1216. waster.
  1217. #
  1218. :QuitButton
  1219. Quit
  1220. X
  1221. Quit ftptool.
  1222. #
  1223. :PropertyOpenLook
  1224. OPEN LOOK Mode
  1225. X
  1226. If set, indicates that you are using an OPEN
  1227. LOOK Window Manager. Currently if this is
  1228. _not_ set, ftptool and the tar viewer will 
  1229. have a Quit button, and most of the pop-ups
  1230. will have Dismiss buttons.
  1231. X
  1232. Also, if you try to View a window that is 
  1233. already displayed it will be hidden. 
  1234. #
  1235. :PropertySortGrouping
  1236. Group files by type
  1237. X
  1238. If set, files are grouped by their
  1239. types (directories first, then regular
  1240. files, ...) in addition to being sorted
  1241. normally.
  1242. #
  1243. :PropertyLocalSortGrouping
  1244. Group files by type
  1245. X
  1246. If set, files are grouped by their
  1247. types (directories first, then regular
  1248. files, ...) in addition to being sorted
  1249. normally.
  1250. #
  1251. :TarQuitButton
  1252. Quit
  1253. X
  1254. Quit the tar viewer.
  1255. #
  1256. :DismissButton
  1257. Dismiss
  1258. X
  1259. Dismiss the pop-up. 
  1260. #
  1261. :HostSaveHostList
  1262. Save Host List
  1263. X
  1264. Saves your personal host list in .ftptoolrc. It 
  1265. will first attempt to save it in your home 
  1266. directory ($HOME), or the current directory if 
  1267. that fails. If you have made changes to the list, 
  1268. (needed) will appear in the option.
  1269. #
  1270. :HostLoadHostList
  1271. Load Host List
  1272. X
  1273. Loads your personal host list from .ftptoolrc, 
  1274. first looking in your home directory ($HOME) and 
  1275. then looking in the current directory if needed.  
  1276. This can be used if you want to discard changes 
  1277. you've made since the last save, or if you modify 
  1278. the .ftptoolrc file outside of ftptool (otherwise 
  1279. ftptool won't know about it).
  1280. #
  1281. :HostAppendNetRC
  1282. Append .netrc
  1283. X
  1284. Looks for a .netrc in your home directory, then 
  1285. the current directory if needed. Loads 'machine' 
  1286. entries into your host list, using a name of 
  1287. 'machinename loginname'. You can then change the 
  1288. name to something more meaningful. Valid entries 
  1289. must contain at least a 'machine' keyword and a 
  1290. 'login' entry. 'macdef' is not recognized.
  1291. If you do not have a .ftptoolrc, then ftptool 
  1292. will look for a .netrc file at startup.
  1293. X  
  1294. You will not be able to select this if you do 
  1295. not have a .netrc.
  1296. #
  1297. :HostWindow
  1298. Host Information
  1299. X
  1300. This is the host window. It allows you to
  1301. connect to ftp servers.
  1302. X
  1303. It is also your personal FTP host list. It 
  1304. allows you to save your most recently used sites 
  1305. and logins in a menu, as the .netrc ftp uses does.
  1306. This menu is saved in .ftptoolrc (which is
  1307. constructed from .netrc if it doesn't exist)
  1308. in ASCII, so you can edit it by hand.
  1309. X
  1310. Be careful when saving password information, as
  1311. it is stored in a weakly-encrypted form! 
  1312. Ftptool will also create the .ftptoolrc with mode 
  1313. 600, but it is still a risk. 
  1314. #
  1315. :HostsButton
  1316. Hosts
  1317. X
  1318. This is the menu containing your host aliases.
  1319. Selecting one will cause the information about
  1320. the host to be loaded. If the auto-connect
  1321. option is set, then it will also attempt to
  1322. connect to that host.
  1323. #
  1324. :HostListAdd
  1325. Add
  1326. X
  1327. Add the information listed in the host list
  1328. window to your list of hosts. Addition is
  1329. based on the value given in the Host Alias
  1330. field. If you try to add an alias that
  1331. already exists, you will be asked if you really
  1332. want to replace the existing entry.
  1333. #
  1334. :HostListChange
  1335. Change
  1336. X
  1337. Add the information listed in the host list
  1338. window to your list of hosts. Addition is
  1339. based on the value given in the Host Alias
  1340. field. If you try to add an alias that
  1341. already exists, you will not be asked if you 
  1342. really want to replace the existing entry.
  1343. #
  1344. :HostListDelete
  1345. Delete
  1346. X
  1347. Delete the entry in the host list that matches
  1348. the value in the Host Alias field. Note that
  1349. selecting an entry is not required to delete
  1350. it, although selecting it will fill in the
  1351. host information. A delete operation will
  1352. then delete that entry.
  1353. #
  1354. :HostListOptions
  1355. List Options
  1356. X
  1357. Provides these functions:
  1358. X
  1359. X - Save your personal host list
  1360. X - Load your original host list
  1361. X - Load your FTP .netrc (if you have one)
  1362. X - Add to your personal host list
  1363. X - Change an entry in the host list
  1364. X - Delete an entry from the host list
  1365. #
  1366. :HostWindowAlias
  1367. Alias
  1368. X
  1369. A name to identify this entry. It can be any
  1370. printable characters not including newline. The
  1371. initial setting, which is not added to the list,
  1372. is "Sun Education" to refer to anonymous ftp to
  1373. yavin.ebay.
  1374. #
  1375. :HostWindowDirect
  1376. Remote host is
  1377. Specify the location of the remote host. Is it
  1378. directly reachable, or does it require passing
  1379. through a gateway provided by Sun Consulting.
  1380. #
  1381. :HostWindowLastVisited
  1382. Last Visited
  1383. X
  1384. The last time you successfully
  1385. connected to the host described by
  1386. this alias. This is only updated
  1387. if you connect through the host
  1388. list, and _not_ the current host
  1389. window.
  1390. #
  1391. :HostWindowComment
  1392. Comment
  1393. X
  1394. A one line comment about the ftp site (X11 
  1395. software, Demos).
  1396. #
  1397. :HostWindowProxy
  1398. Proxy host
  1399. X
  1400. Give the hostname of the proxy host to use. This 
  1401. should be the full name (including domain) to 
  1402. make sure the right host is connected to. 
  1403. This defaults to sun-barr.EBay.
  1404. X
  1405. Internet addresses can be used if you wish.
  1406. #
  1407. :HostWindowHostname
  1408. Remote host
  1409. X
  1410. The hostname of the host to connect to. This 
  1411. should be the full name (including domain) to 
  1412. make sure the right host is connected to. 
  1413. This defaults to yavin.EBay.
  1414. X
  1415. Internet addresses can be used if you wish.
  1416. #
  1417. :HostWindowLogin
  1418. Login
  1419. X
  1420. The login name to use when connecting to the
  1421. remote host. This defaults to 'anonymous'.
  1422. #
  1423. :HostWindowPassword
  1424. Password
  1425. X
  1426. The password to give when logging in to the remote
  1427. host. It will be displayed as '*'s instead of
  1428. the actual characters. Pressing return in this 
  1429. field will automatically attempt to connect.
  1430. X
  1431. If this field is empty, the default password
  1432. will be used.
  1433. #
  1434. :HostWindowDirectory
  1435. Remote Directory
  1436. X
  1437. The remote directory to change to upon connecting.
  1438. #
  1439. :HostWindowLocalDirectory
  1440. Local Directory
  1441. X
  1442. The local directory to change to upon connecting.
  1443. #
  1444. :HostWindowDirTemplate
  1445. DIR Template
  1446. X
  1447. The template is a series of keywords 
  1448. separated by whitespace or characters
  1449. that must match (so if there are dashes in 
  1450. the date, you theoretically give 
  1451. MONTH-DAY-YEAR). See the manual page for 
  1452. more information. The keywords are:
  1453. .in +4 
  1454. PERMS   - Normal UNIX permissions 
  1455. X          (drwxrwxrwx) 
  1456. LINKS   - Link count. Currently matched, 
  1457. X          but discarded
  1458. USER    - User name/number 
  1459. GROUP   - Group name/number
  1460. SIZE    - File size 
  1461. MONTH   - Month (Dec, Jan, ...) 
  1462. DAY     - Day of week (number) 
  1463. TIME    - Hour:minute (09:49) or 
  1464. X          year (1991) 
  1465. NAME    - Filename
  1466. SKIP    - Discard characters until the 
  1467. X          next whitespace.
  1468. X
  1469. NONUNIX is a special case. Its appearence
  1470. anywhere in the string sets non-UNIX mode
  1471. (use 'ls' and not 'dir', assume everything
  1472. is a file, but you can still try to cd
  1473. by double-clicking)
  1474. X
  1475. LOWERNAMES is also a special case. It
  1476. causes all filenames read from the remote
  1477. machine to be converted to lowercase.
  1478. #
  1479. :HostWindowConnectButton
  1480. Connect
  1481. Disconnect
  1482. X
  1483. Attempt to connect to the remote host. 
  1484. X
  1485. While you are connected to a remote host, the
  1486. connect button will be a 'Disconnect' button,
  1487. and will disconnect you from the remote host.
  1488. #
  1489. :ViewSchedule
  1490. Schedule
  1491. X
  1492. Display the batch schedule pop-up.
  1493. #
  1494. :ScheduleWindow
  1495. Schedule Batch Transfer
  1496. X
  1497. This window allows you to schedule files
  1498. to be transferred at a later time. Most
  1499. necessary information is taken from the 
  1500. current Host Information window values.
  1501. #
  1502. :ProcessBatch
  1503. Process Batch
  1504. X
  1505. Switch from interactive mode to batch mode,
  1506. and process the batch list.
  1507. #
  1508. :AbortBatch
  1509. Abort Batch
  1510. X
  1511. Go back to interactive mode. Stop doing
  1512. the batch list after the current transfer.
  1513. #
  1514. :ScheduleHosts
  1515. Hosts
  1516. X
  1517. The list of pending transfers. 'R' indicates
  1518. a 'receive from' login@host, 'S' indicates a
  1519. 'send to' login@host.
  1520. #
  1521. :ScheduleCurrent
  1522. Set Current
  1523. X
  1524. Use the current host information defaults.
  1525. Primarily, this consists of creating the
  1526. menu label from the login and host fields.
  1527. #
  1528. :ScheduleAdd
  1529. Add
  1530. X
  1531. Add the current target and file list to
  1532. the batch list. Many defaults, such as 
  1533. remote and local directories, are taken
  1534. from the host information window.
  1535. #
  1536. :ScheduleChange
  1537. Change
  1538. X
  1539. Add the current target and file list to
  1540. the batch list. Same as Add, but does
  1541. not ask for confirmation if the entry 
  1542. exists. 
  1543. #
  1544. :ScheduleDelete
  1545. Delete
  1546. X
  1547. Delete the current target and direction
  1548. from the batch list.
  1549. #
  1550. :ScheduleOptions
  1551. Options
  1552. X
  1553. A menu of various options, such as Add 
  1554. and Delete, to apply to the batch list.
  1555. #
  1556. :ScheduleTime
  1557. Time Now
  1558. X
  1559. The current time.
  1560. #
  1561. :ScheduleDirection
  1562. Action
  1563. X
  1564. The action to perform. Either send or
  1565. receive. It also determines which batch
  1566. list is shown below.
  1567. #
  1568. :ScheduleTarget
  1569. Target
  1570. X
  1571. The remote target, in the form of
  1572. login@host.
  1573. #
  1574. :ScheduleHour
  1575. Hour
  1576. X
  1577. The hour (24-hour) to start the transfer.
  1578. #
  1579. :ScheduleMinute
  1580. Minute
  1581. X
  1582. The minute to start the transfer.
  1583. #
  1584. :ScheduleMonth
  1585. Month
  1586. X
  1587. The month to start the transfer.
  1588. #
  1589. :ScheduleDay
  1590. Day
  1591. X
  1592. The day to start the transfer.
  1593. #
  1594. :ScheduleYear
  1595. Year
  1596. X
  1597. The year to start the transfer.
  1598. #
  1599. :TransferMode
  1600. Transfer Mode
  1601. X
  1602. Either Binary, ASCII, or Tenex mode.
  1603. X
  1604. The default is binary mode.
  1605. #
  1606. :FileDIR
  1607. DIR
  1608. X
  1609. Do a DIR command in the session log.
  1610. This allows you to determine what the
  1611. DIR template should be.
  1612. #
  1613. :FileLS
  1614. LS
  1615. X
  1616. Do a LS command in the session log.
  1617. #
  1618. :TotalGauge
  1619. Total Gauge
  1620. X
  1621. The gauge shows how far the total
  1622. transfer has progressed, from 0 to 
  1623. 100% complete.
  1624. #
  1625. :FileGauge
  1626. File Gauge
  1627. X
  1628. The gauge shows how far the transfer
  1629. has progressed on the current file, 
  1630. from 0 to 100% complete.
  1631. #
  1632. :StatusWindow
  1633. Status Window
  1634. X
  1635. This window shows what you are
  1636. transferring, how large it is, and how
  1637. far along the transfer is.
  1638. #
  1639. :PropertiesSaveLayout
  1640. Save Layout
  1641. X
  1642. Save the layout of ftptool. This includes
  1643. the sizes and locations of most of the
  1644. windows, along with whether the main 
  1645. windows are visible.
  1646. #
  1647. :PropertyIgnoreCase
  1648. Ignore Case
  1649. X
  1650. When generating the host menu, ignore
  1651. the case of the alias. Also, ignore
  1652. case in the remote and local lists.
  1653. #
  1654. :PropertyAuto
  1655. Connect
  1656. X
  1657. If set, when you select a host from the
  1658. menu ftptool will try to connect to that
  1659. host. If not, selecting a host will just
  1660. fill in the host information window.
  1661. X
  1662. Show Status
  1663. X
  1664. Always show the transfer status window
  1665. when doing a transfer. If not set, don't
  1666. display it. You can still bring it
  1667. up from the View menu.
  1668. X
  1669. Try Sun Proxy FTP 
  1670. X
  1671. If TRUE, ftptool will automatically try to use
  1672. Sun's proxy FTP (from Sun Consulting) if it
  1673. cannot resolve the hostname (the host is 
  1674. unkown) or it receives a 'Network unreachable'
  1675. error when trying to connect. This is primarily 
  1676. used by Sun folks trying to get out to the Internet.
  1677. #
  1678. SHAR_EOF
  1679. chmod 0644 ftptool.info ||
  1680. echo 'restore of ftptool.info failed'
  1681. Wc_c="`wc -c < 'ftptool.info'`"
  1682. test 32541 -eq "$Wc_c" ||
  1683.     echo 'ftptool.info: original size 32541, current size' "$Wc_c"
  1684. rm -f _shar_wnt_.tmp
  1685. fi
  1686. # ============= create_other.c ==============
  1687. if test -f 'create_other.c' -a X"$1" != X"-c"; then
  1688.     echo 'x - skipping create_other.c (File already exists)'
  1689.     rm -f _shar_wnt_.tmp
  1690. else
  1691. > _shar_wnt_.tmp
  1692. echo 'x - extracting create_other.c (Text)'
  1693. sed 's/^X//' << 'SHAR_EOF' > 'create_other.c' &&
  1694. #include "ftptool.h"
  1695. X
  1696. #ifdef USE_PROTOTYPES
  1697. void create_host_popup(void)
  1698. #else
  1699. void create_host_popup()
  1700. #endif
  1701. {
  1702. X    struct passwd *pwd;
  1703. X    char    domainname[MAXHOSTNAMELEN + 1];
  1704. X    char    *sundomain;
  1705. X    Rect    rect;
  1706. X    int        width, height, x, y;
  1707. X    Menu    host_menu;
  1708. X    Menu    host_list_menu;
  1709. X    Panel    message;
  1710. X
  1711. X    XSync(dpy, False);
  1712. X    frame_get_rect(base_window.frame, &rect);
  1713. X
  1714. X    host_window.frame = (Frame)xv_create(base_window.frame, FRAME_CMD,
  1715. X        XV_LABEL, "Ftptool: Host Information",
  1716. X        FRAME_SHOW_RESIZE_CORNER, TRUE,
  1717. X        NULL);
  1718. X
  1719. X    host_window.panel = xv_get(host_window.frame, FRAME_CMD_PANEL);
  1720. X    xv_set(host_window.panel,
  1721. X        XV_HELP_DATA, "ftptool:HostWindow",
  1722. X        NULL);
  1723. X
  1724. X    host_window.new = xv_create(host_window.panel, PANEL_BUTTON,
  1725. X        PANEL_LABEL_STRING, "New",
  1726. X        PANEL_NOTIFY_PROC, host_list_clean_proc,
  1727. X        NULL);
  1728. X
  1729. X    host_window.anonymous = xv_create(host_window.panel, PANEL_BUTTON,
  1730. X        PANEL_LABEL_STRING, "Anonymous",
  1731. X        PANEL_NOTIFY_PROC, host_list_clean_proc,
  1732. X        NULL);
  1733. X
  1734. X    host_menu = xv_create(XV_NULL, MENU,
  1735. X        MENU_GEN_PIN_WINDOW, base_window.frame, "Hosts",
  1736. X        MENU_TITLE_ITEM, "Hosts",
  1737. X        MENU_ITEM,
  1738. X            MENU_STRING, "No Hosts!",
  1739. X            NULL,
  1740. X        NULL);
  1741. X
  1742. X    host_window.hosts = xv_create(host_window.panel, PANEL_BUTTON,
  1743. X        PANEL_LABEL_STRING, "Hosts",
  1744. X        PANEL_ITEM_MENU, host_menu,
  1745. X        XV_HELP_DATA, "ftptool:HostsButton",
  1746. X        NULL);
  1747. X
  1748. #ifdef LINT
  1749. X    host_list_menu = NULL;
  1750. X    host_list_menu = host_list_menu;
  1751. #else
  1752. X    host_list_menu = xv_create(XV_NULL, MENU,
  1753. X        MENU_GEN_PROC, host_menu_gen,
  1754. X        MENU_ITEM,
  1755. X            MENU_STRING, "Save",
  1756. X            MENU_NOTIFY_PROC, host_save_proc,
  1757. X            XV_HELP_DATA, "ftptool:HostSaveHostList",
  1758. X            NULL,
  1759. X        MENU_ITEM,
  1760. X            MENU_STRING, "Load",
  1761. X            MENU_NOTIFY_PROC, host_load_proc,
  1762. X            XV_HELP_DATA, "ftptool:HostLoadHostList",
  1763. X            NULL,
  1764. X        MENU_ITEM,
  1765. X            MENU_STRING, "Append .netrc",
  1766. X            MENU_NOTIFY_PROC, host_append_netrc_proc,
  1767. X            XV_HELP_DATA, "ftptool:HostAppendNetRC",
  1768. X            NULL,
  1769. X        MENU_ITEM,
  1770. X            MENU_STRING, "Add",
  1771. X            MENU_NOTIFY_PROC, host_list_add_proc,
  1772. X            XV_HELP_DATA, "ftptool:HostListAdd",
  1773. X            NULL,
  1774. X        MENU_ITEM,
  1775. X            MENU_STRING, "Change",
  1776. X            MENU_NOTIFY_PROC, host_list_change_proc,
  1777. X            XV_HELP_DATA, "ftptool:HostListChange",
  1778. X            NULL,
  1779. X        MENU_ITEM,
  1780. X            MENU_STRING, "Delete",
  1781. X            MENU_NOTIFY_PROC, host_list_delete_proc,
  1782. X            XV_HELP_DATA, "ftptool:HostListDelete",
  1783. X            NULL,
  1784. X        NULL);
  1785. #endif
  1786. X
  1787. X    host_window.host_list_ops = xv_create(host_window.panel, PANEL_BUTTON,
  1788. X        PANEL_LABEL_STRING, "Host List",
  1789. X        PANEL_ITEM_MENU, host_list_menu,
  1790. X        XV_HELP_DATA, "ftptool:HostListOptions",
  1791. X        NULL);
  1792. X
  1793. X    xv_set(host_window.panel, 
  1794. X        PANEL_LAYOUT, PANEL_VERTICAL, 
  1795. X        NULL);
  1796. X
  1797. X    window_fit_height(host_window.panel);
  1798. X    
  1799. X    host_window.basic.panel = xv_create(host_window.frame, PANEL,
  1800. X        PANEL_LAYOUT, PANEL_VERTICAL,
  1801. X        WIN_BORDER, TRUE,
  1802. X        XV_SHOW, TRUE,
  1803. X        NULL);
  1804. X    
  1805. X    host_window.basic.host = xv_create(host_window.basic.panel, PANEL_TEXT,
  1806. X        PANEL_NEXT_ROW, xv_row(host_window.basic.panel, 1),
  1807. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1808. X        PANEL_VALUE_STORED_LENGTH, MAXHOSTNAMELEN,
  1809. X        PANEL_LABEL_STRING, "Remote host:",
  1810. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1811. X        PANEL_VALUE, DEFAULT_HOST,
  1812. X        PANEL_READ_ONLY, FALSE,
  1813. X        PANEL_NOTIFY_STRING, " ",
  1814. X        PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
  1815. X        PANEL_NOTIFY_PROC, reject_spaces,
  1816. X        XV_HELP_DATA, "ftptool:HostWindowHostname",
  1817. X        NULL);
  1818. X
  1819. X    host_window.basic.login = xv_create(host_window.basic.panel, PANEL_TEXT,
  1820. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1821. X        PANEL_VALUE_STORED_LENGTH, MAXLOGINLEN,
  1822. X        PANEL_LABEL_STRING, "Login:",
  1823. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1824. X        PANEL_VALUE, "anonymous",
  1825. X        PANEL_READ_ONLY, FALSE,
  1826. X        PANEL_NOTIFY_STRING, " ",
  1827. X        PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
  1828. X        PANEL_NOTIFY_PROC, reject_spaces,
  1829. X        XV_HELP_DATA, "ftptool:HostWindowLogin",
  1830. X        NULL);
  1831. X
  1832. X    pwd = getpwuid(getuid());
  1833. X    if (pwd == NULL) {
  1834. X        fprintf(stderr, "Who are you?\n");
  1835. X        login_name = "unknown";
  1836. X    } else {
  1837. X        login_name = strdup(pwd->pw_name);
  1838. X        if (login_name == NULL) {
  1839. X            fprintf(stderr, "Out of memory.\n");
  1840. X            login_name = "unknown";
  1841. X        }
  1842. X    }
  1843. X
  1844. X    if (getdomainname(domainname, MAXHOSTNAMELEN) == -1) {
  1845. X        fprintf(stderr, "What domain is this?\n");
  1846. X        strcpy(domainname, "unknown");
  1847. X    }
  1848. X
  1849. X    sundomain = index(domainname, '.');
  1850. X    if (sundomain != NULL)
  1851. X        sundomain++; /* assume domain XX.Domain.Sun.COM */
  1852. X    else
  1853. X        sundomain = domainname;
  1854. X
  1855. X
  1856. X    if (anonftp_password == NULL) {
  1857. X        if (index(myhostname, '.'))
  1858. X            sprintf(scratch, "%s@%s",login_name, myhostname);
  1859. X        else
  1860. X            sprintf(scratch, "%s@%s.%s",login_name, myhostname, sundomain);
  1861. X
  1862. X        anonftp_password = strdup(scratch);
  1863. X    } else {
  1864. X        strcpy(scratch, anonftp_password);
  1865. X    }
  1866. X
  1867. X    footer_message("Initial password for ftp is %s.", scratch, (char *)NULL);
  1868. X    host_window.basic.password = xv_create(host_window.basic.panel, PANEL_TEXT,
  1869. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1870. X        PANEL_VALUE_STORED_LENGTH, MAXPASSWORDLEN,
  1871. X        PANEL_LABEL_STRING, "Password:",
  1872. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1873. X        PANEL_VALUE, anonftp_password,
  1874. X        PANEL_READ_ONLY, FALSE,
  1875. X        PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
  1876. X        PANEL_NOTIFY_PROC, connect_proc,
  1877. X        PANEL_MASK_CHAR, '*',
  1878. X        XV_HELP_DATA, "ftptool:HostWindowPassword",
  1879. X        NULL);
  1880. X
  1881. X    window_fit_width(host_window.basic.panel);
  1882. X
  1883. X    host_window.basic.connect = xv_create(host_window.basic.panel, PANEL_BUTTON,
  1884. X        PANEL_LABEL_STRING, " Connect  ",
  1885. X        PANEL_NOTIFY_PROC, connect_proc,
  1886. X        XV_HELP_DATA, "ftptool:HostWindowConnectButton",
  1887. X        NULL);
  1888. X
  1889. X    xv_set(host_window.basic.panel, 
  1890. X        PANEL_LAYOUT, PANEL_HORIZONTAL, 
  1891. X        NULL);
  1892. X
  1893. X    host_window.basic.dismiss = xv_create(host_window.basic.panel, PANEL_BUTTON,
  1894. X        PANEL_LABEL_STRING, "Dismiss",
  1895. X        PANEL_NOTIFY_PROC, dismiss_host_window,
  1896. X        XV_SHOW, openlook_mode ? FALSE : TRUE,
  1897. X        XV_HELP_DATA, "ftptool:DismissButton",
  1898. X        NULL);
  1899. X
  1900. X    host_window.basic.plus = xv_create(host_window.basic.panel, 
  1901. X        PANEL_BUTTON,
  1902. X        PANEL_LABEL_STRING, "+",
  1903. X        PANEL_NOTIFY_PROC, plus_proc,
  1904. X        NULL);
  1905. X
  1906. X    xv_set(host_window.basic.panel, 
  1907. X        PANEL_DEFAULT_ITEM, host_window.basic.connect, 
  1908. X        NULL);
  1909. X
  1910. X    xv_set(host_window.panel, 
  1911. X        PANEL_LAYOUT, PANEL_VERTICAL, 
  1912. X        NULL);
  1913. X    
  1914. X    host_window.advanced.panel = xv_create(host_window.frame, PANEL,
  1915. X        PANEL_LAYOUT, PANEL_VERTICAL,
  1916. X        XV_SHOW, FALSE,
  1917. X        NULL);
  1918. X    
  1919. X    host_window.advanced.alias = xv_create(host_window.advanced.panel, 
  1920. X        PANEL_TEXT,
  1921. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1922. X        PANEL_VALUE_STORED_LENGTH, MAXALIASLEN,
  1923. X        PANEL_LABEL_STRING, "Alias:",
  1924. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1925. X        PANEL_VALUE, "Sun Education",
  1926. X        XV_HELP_DATA, "ftptool:HostWindowAlias",
  1927. X        PANEL_READ_ONLY, FALSE,
  1928. X        NULL);
  1929. X
  1930. X    message = xv_create(host_window.advanced.panel, PANEL_MESSAGE,
  1931. X        PANEL_LABEL_STRING, "Last Visited:",
  1932. X        PANEL_LABEL_BOLD, TRUE,
  1933. X        XV_HELP_DATA, "ftptool:HostWindowLastVisited",
  1934. X        NULL);
  1935. X
  1936. X    host_window.advanced.comment = xv_create(host_window.advanced.panel, 
  1937. X        PANEL_TEXT,
  1938. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1939. X        PANEL_VALUE_STORED_LENGTH, MAXCOMMENTLEN,
  1940. X        PANEL_LABEL_STRING, "Comment:",
  1941. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1942. X        PANEL_VALUE, "East Bay Ftp site (home of Ftptool :-)",
  1943. X        PANEL_READ_ONLY, FALSE,
  1944. X        XV_HELP_DATA, "ftptool:HostWindowComment",
  1945. X        NULL);
  1946. X
  1947. X    host_window.advanced.proxy = xv_create(host_window.advanced.panel, 
  1948. X        PANEL_TEXT,
  1949. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1950. X        PANEL_VALUE_STORED_LENGTH, MAXHOSTNAMELEN,
  1951. X        PANEL_LABEL_STRING, "Proxy host:",
  1952. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1953. X        PANEL_VALUE, DEFAULT_PROXY,
  1954. X        PANEL_READ_ONLY, FALSE,
  1955. X        PANEL_NOTIFY_STRING, " ",
  1956. X        PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
  1957. X        PANEL_NOTIFY_PROC, reject_spaces,
  1958. X        XV_HELP_DATA, "ftptool:HostWindowProxy",
  1959. X        NULL);
  1960. X
  1961. X
  1962. X    host_window.advanced.transfer_mode = xv_create(host_window.advanced.panel, 
  1963. X        PANEL_CHOICE,
  1964. X        PANEL_LABEL_STRING, "Transfer mode:",
  1965. X        PANEL_CHOOSE_ONE, TRUE,
  1966. X        PANEL_CHOOSE_NONE, FALSE,
  1967. X        PANEL_CHOICE_STRINGS,
  1968. X            "Binary",
  1969. X            "ASCII",
  1970. X            "Tenex",
  1971. X            /*
  1972. X            "Image",
  1973. X            "EBCDIC",
  1974. X             */
  1975. X            NULL,
  1976. X        XV_HELP_DATA, "ftptool:TransferMode",
  1977. X        NULL);
  1978. X
  1979. X    host_window.advanced.remote_auto_cd = xv_create(host_window.advanced.panel, 
  1980. X        PANEL_TEXT,
  1981. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1982. X        PANEL_VALUE_STORED_LENGTH, MAXPATHLEN,
  1983. X        PANEL_LABEL_STRING, "Remote CD to:",
  1984. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  1985. X        PANEL_VALUE, ".",
  1986. X        PANEL_READ_ONLY, FALSE,
  1987. X        PANEL_NOTIFY_STRING, " ",
  1988. X        PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
  1989. X        PANEL_NOTIFY_PROC, reject_spaces,
  1990. X        XV_HELP_DATA, "ftptool:HostWindowDirectory",
  1991. X        NULL);
  1992. X
  1993. X
  1994. X    host_window.advanced.local_auto_cd = xv_create(host_window.advanced.panel, 
  1995. X        PANEL_TEXT,
  1996. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  1997. X        PANEL_VALUE_STORED_LENGTH, MAXPATHLEN,
  1998. X        PANEL_LABEL_STRING, "Local CD to:",
  1999. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  2000. X        PANEL_VALUE, ".",
  2001. X        PANEL_READ_ONLY, FALSE,
  2002. X        PANEL_NOTIFY_STRING, " ",
  2003. X        PANEL_NOTIFY_LEVEL, PANEL_SPECIFIED,
  2004. X        PANEL_NOTIFY_PROC, reject_spaces,
  2005. X        XV_HELP_DATA, "ftptool:HostWindowLocalDirectory",
  2006. X        NULL);
  2007. X
  2008. X    host_window.advanced.dir_parse = xv_create(host_window.advanced.panel, 
  2009. X        PANEL_TEXT,
  2010. X        PANEL_VALUE_DISPLAY_LENGTH, 25,
  2011. X        PANEL_VALUE_STORED_LENGTH, MAXPATHLEN,
  2012. X        PANEL_LABEL_STRING, "DIR Template:",
  2013. X        PANEL_LAYOUT, PANEL_HORIZONTAL,
  2014. X        PANEL_VALUE, DEFAULT_PARSE,
  2015. X        PANEL_READ_ONLY, FALSE,
  2016. X        XV_HELP_DATA, "ftptool:HostWindowDirTemplate",
  2017. X        NULL);
  2018. X
  2019. X    host_window.advanced.minus = xv_create(host_window.advanced.panel,
  2020. X        PANEL_BUTTON,
  2021. X        PANEL_LABEL_STRING, "-",
  2022. X        PANEL_NOTIFY_PROC, minus_proc,
  2023. X        NULL);
  2024. X
  2025. X    xv_set(host_window.panel, 
  2026. X        PANEL_LAYOUT, PANEL_HORIZONTAL, 
  2027. X        NULL);
  2028. X
  2029. X
  2030. X    /*
  2031. X    window_fit(host_window.panel);
  2032. X    justify_items(host_window.panel, TRUE);
  2033. X     */
  2034. X
  2035. X    /*
  2036. X    window_fit(host_window.basic.panel);
  2037. X     */
  2038. X    justify_items(host_window.basic.panel, TRUE);
  2039. X
  2040. X    window_fit_width(host_window.advanced.panel);
  2041. X    justify_items(host_window.advanced.panel, TRUE);
  2042. X
  2043. X    xv_set(host_window.advanced.panel, 
  2044. X        WIN_FIT_HEIGHT, 20,
  2045. X        XV_X, (int)xv_get(host_window.advanced.panel, XV_X) - 3,
  2046. X        NULL);
  2047. X
  2048. X    /*
  2049. X    height = (int)xv_get(host_window.advanced.panel, XV_HEIGHT);
  2050. X    xv_set(host_window.basic.panel, 
  2051. X        XV_HEIGHT, height, 
  2052. X        NULL);
  2053. X     */
  2054. X
  2055. X    y = (int)xv_get(host_window.advanced.minus, XV_Y);
  2056. X    x = (int)xv_get(host_window.basic.panel, XV_WIDTH) 
  2057. X        - (int)xv_get(host_window.basic.plus, XV_WIDTH) - 5;
  2058. X
  2059. X    xv_set(host_window.basic.connect, 
  2060. X        XV_Y, y,
  2061. X        NULL);
  2062. X    xv_set(host_window.basic.dismiss, 
  2063. X        XV_Y, y,
  2064. X        NULL);
  2065. X    xv_set(host_window.basic.plus, 
  2066. X        XV_Y, y,
  2067. X        XV_X, x - 2,
  2068. X        NULL);
  2069. X
  2070. X    xv_set(host_window.basic.panel, 
  2071. X        WIN_FIT_HEIGHT, 20,
  2072. X        NULL);
  2073. X
  2074. X
  2075. X    host_window.advanced.last_visited = xv_create(host_window.advanced.panel,
  2076. X        PANEL_MESSAGE,
  2077. X        PANEL_ITEM_X, xv_get(message, XV_X) + xv_get(message, XV_WIDTH)
  2078. X            + xv_col(host_window.advanced.panel, 1) / 2,
  2079. X        PANEL_ITEM_Y, xv_get(message, XV_Y),
  2080. X        PANEL_LABEL_STRING, "Never",
  2081. X        XV_HELP_DATA, "ftptool:HostWindowLastVisited",
  2082. SHAR_EOF
  2083. true || echo 'restore of create_other.c failed'
  2084. fi
  2085. echo 'End of  part 10'
  2086. echo 'File create_other.c is continued in part 11'
  2087. echo 11 > _shar_seq_.tmp
  2088. exit 0
  2089. -- 
  2090. Senior Systems Scientist        mail: dcmartin@msi.com
  2091. Molecular Simulations, Inc.        uucp: uunet!dcmartin
  2092. 796 North Pastoria Avenue        at&t: 408/522-9236
  2093. Sunnyvale, California 94086        fax: 408/732-0831
  2094.