LCOV - app.info - js/src/editline/sysunix.c

LCOV - code coverage report
| Current view: | directory - js/src/editline - sysunix.c (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 22 | 0 | 0.0 %
| Date: | 2012-04-07 | Functions: | 2 | 0 | 0.0 %

           1                 : /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
           2                 :  *
           3                 :  * ***** BEGIN LICENSE BLOCK *****
           4                 :  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
           5                 :  *
           6                 :  * The contents of this file are subject to the Mozilla Public License Version
           7                 :  * 1.1 (the "License"); you may not use this file except in compliance with
           8                 :  * the License. You may obtain a copy of the License at
           9                 :  * http://www.mozilla.org/MPL/
          10                 :  *
          11                 :  * Software distributed under the License is distributed on an "AS IS" basis,
          12                 :  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
          13                 :  * for the specific language governing rights and limitations under the
          14                 :  * License.
          15                 :  *
          16                 :  * The Original Code is Mozilla Communicator client code, released
          17                 :  * March 31, 1998.
          18                 :  *
          19                 :  * The Initial Developer of the Original Code is
          20                 :  * Simmule Turner and Rich Salz.
          21                 :  * Portions created by the Initial Developer are Copyright (C) 1998
          22                 :  * the Initial Developer. All Rights Reserved.
          23                 :  *
          24                 :  * Contributor(s):
          25                 :  *
          26                 :  * Alternatively, the contents of this file may be used under the terms of
          27                 :  * either the GNU General Public License Version 2 or later (the "GPL"), or
          28                 :  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
          29                 :  * in which case the provisions of the GPL or the LGPL are applicable instead
          30                 :  * of those above. If you wish to allow use of your version of this file only
          31                 :  * under the terms of either the GPL or the LGPL, and not to allow others to
          32                 :  * use your version of this file under the terms of the MPL, indicate your
          33                 :  * decision by deleting the provisions above and replace them with the notice
          34                 :  * and other provisions required by the GPL or the LGPL. If you do not delete
          35                 :  * the provisions above, a recipient may use your version of this file under
          36                 :  * the terms of any one of the MPL, the GPL or the LGPL.
          37                 :  *
          38                 :  * ***** END LICENSE BLOCK ***** */
          39                 :
          40                 : /*
          41                 :  * Copyright 1992,1993 Simmule Turner and Rich Salz.  All rights reserved.
          42                 :  *
          43                 :  * This software is not subject to any license of the American Telephone
          44                 :  * and Telegraph Company or of the Regents of the University of California.
          45                 :  *
          46                 :  * Permission is granted to anyone to use this software for any purpose on
          47                 :  * any computer system, and to alter it and redistribute it freely, subject
          48                 :  * to the following restrictions:
          49                 :  * 1. The authors are not responsible for the consequences of use of this
          50                 :  *    software, no matter how awful, even if they arise from flaws in it.
          51                 :  * 2. The origin of this software must not be misrepresented, either by
          52                 :  *    explicit claim or by omission.  Since few users ever read sources,
          53                 :  *    credits must appear in the documentation.
          54                 :  * 3. Altered versions must be plainly marked as such, and must not be
          55                 :  *    misrepresented as being the original software.  Since few users
          56                 :  *    ever read sources, credits must appear in the documentation.
          57                 :  * 4. This notice may not be removed or altered.
          58                 :  */
          59                 :
          60                 :
          61                 : /*
          62                 : **  Unix system-dependant routines for editline library.
          63                 : */
          64                 : #include "editline.h"
          65                 :
          66                 : #if     defined(HAVE_TCGETATTR)
          67                 : #include <termios.h>
          68                 :
          69                 : void
          70               0 : rl_ttyset(Reset)
          71                 :     int                         Reset;
          72                 : {
          73                 :     static struct termios       old;
          74                 :     struct termios              new;
          75                 :
          76               0 :     if (Reset == 0) {
          77               0 :         (void)tcgetattr(0, &old);
          78               0 :         rl_erase = old.c_cc[VERASE];
          79               0 :         rl_kill = old.c_cc[VKILL];
          80               0 :         rl_eof = old.c_cc[VEOF];
          81               0 :         rl_intr = old.c_cc[VINTR];
          82               0 :         rl_quit = old.c_cc[VQUIT];
          83                 :
          84               0 :         new = old;
          85               0 :         new.c_cc[VINTR] = -1;
          86               0 :         new.c_cc[VQUIT] = -1;
          87               0 :         new.c_lflag &= ~(ECHO | ICANON);
          88               0 :         new.c_iflag &= ~(ISTRIP | INPCK);
          89               0 :         new.c_cc[VMIN] = 1;
          90               0 :         new.c_cc[VTIME] = 0;
          91               0 :         (void)tcsetattr(0, TCSADRAIN, &new);
          92                 :     }
          93                 :     else
          94               0 :         (void)tcsetattr(0, TCSADRAIN, &old);
          95               0 : }
          96                 :
          97                 : #else
          98                 : #if     defined(HAVE_TERMIO)
          99                 : #include <termio.h>
         100                 :
         101                 : void
         102                 : rl_ttyset(Reset)
         103                 :     int                         Reset;
         104                 : {
         105                 :     static struct termio        old;
         106                 :     struct termio               new;
         107                 :
         108                 :     if (Reset == 0) {
         109                 :         (void)ioctl(0, TCGETA, &old);
         110                 :         rl_erase = old.c_cc[VERASE];
         111                 :         rl_kill = old.c_cc[VKILL];
         112                 :         rl_eof = old.c_cc[VEOF];
         113                 :         rl_intr = old.c_cc[VINTR];
         114                 :         rl_quit = old.c_cc[VQUIT];
         115                 :
         116                 :         new = old;
         117                 :         new.c_cc[VINTR] = -1;
         118                 :         new.c_cc[VQUIT] = -1;
         119                 :         new.c_lflag &= ~(ECHO | ICANON);
         120                 :         new.c_iflag &= ~(ISTRIP | INPCK);
         121                 :         new.c_cc[VMIN] = 1;
         122                 :         new.c_cc[VTIME] = 0;
         123                 :         (void)ioctl(0, TCSETAW, &new);
         124                 :     }
         125                 :     else
         126                 :         (void)ioctl(0, TCSETAW, &old);
         127                 : }
         128                 :
         129                 : #else
         130                 : #include <sgtty.h>
         131                 :
         132                 : void
         133                 : rl_ttyset(Reset)
         134                 :     int                         Reset;
         135                 : {
         136                 :     static struct sgttyb        old_sgttyb;
         137                 :     static struct tchars        old_tchars;
         138                 :     struct sgttyb               new_sgttyb;
         139                 :     struct tchars               new_tchars;
         140                 :
         141                 :     if (Reset == 0) {
         142                 :         (void)ioctl(0, TIOCGETP, &old_sgttyb);
         143                 :         rl_erase = old_sgttyb.sg_erase;
         144                 :         rl_kill = old_sgttyb.sg_kill;
         145                 :
         146                 :         (void)ioctl(0, TIOCGETC, &old_tchars);
         147                 :         rl_eof = old_tchars.t_eofc;
         148                 :         rl_intr = old_tchars.t_intrc;
         149                 :         rl_quit = old_tchars.t_quitc;
         150                 :
         151                 :         new_sgttyb = old_sgttyb;
         152                 :         new_sgttyb.sg_flags &= ~ECHO;
         153                 :         new_sgttyb.sg_flags |= RAW;
         154                 : #if     defined(PASS8)
         155                 :         new_sgttyb.sg_flags |= PASS8;
         156                 : #endif  /* defined(PASS8) */
         157                 :         (void)ioctl(0, TIOCSETP, &new_sgttyb);
         158                 :
         159                 :         new_tchars = old_tchars;
         160                 :         new_tchars.t_intrc = -1;
         161                 :         new_tchars.t_quitc = -1;
         162                 :         (void)ioctl(0, TIOCSETC, &new_tchars);
         163                 :     }
         164                 :     else {
         165                 :         (void)ioctl(0, TIOCSETP, &old_sgttyb);
         166                 :         (void)ioctl(0, TIOCSETC, &old_tchars);
         167                 :     }
         168                 : }
         169                 : #endif  /* defined(HAVE_TERMIO) */
         170                 : #endif  /* defined(HAVE_TCGETATTR) */
         171                 :
         172                 : void
         173               0 : rl_add_slash(path, p)
         174                 :     char        *path;
         175                 :     char        *p;
         176                 : {
         177                 :     struct stat Sb;
         178                 :
         179               0 :     if (stat(path, &Sb) >= 0)
         180               0 :         (void)strcat(p, S_ISDIR(Sb.st_mode) ? "/" : " ");
         181               0 : }
         182                 :

Generated by: LCOV version 1.7