===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v2.8 written by @Wireghoul
=================================[justanotherhacker.com]===
ed-1.16/red.in-1-#! /bin/sh
ed-1.16/red.in:2:bindir=`echo "$0" | sed -e 's,[^/]*$,,'`
ed-1.16/red.in-3-exec "${bindir}"ed --restricted "$@"
##############################################
ed-1.16/ed.h-63-bool copy_lines( const int first_addr, const int second_addr, const int addr );
ed-1.16/ed.h:64:int current_addr( void );
ed-1.16/ed.h:65:int dec_addr( int addr );
ed-1.16/ed.h-66-bool delete_lines( const int from, const int to, const bool isglobal );
ed-1.16/ed.h:67:int get_line_node_addr( const line_t * const lp );
ed-1.16/ed.h-68-char * get_sbuf_line( const line_t * const lp );
ed-1.16/ed.h:69:int inc_addr( int addr );
ed-1.16/ed.h:70:int inc_current_addr( void );
ed-1.16/ed.h-71-bool init_buffers( void );
##############################################
ed-1.16/ed.h-73-bool join_lines( const int from, const int to, const bool isglobal );
ed-1.16/ed.h:74:int last_addr( void );
ed-1.16/ed.h-75-bool modified( void );
##############################################
ed-1.16/ed.h-83-void set_binary( void );
ed-1.16/ed.h:84:void set_current_addr( const int addr );
ed-1.16/ed.h-85-void set_modified( const bool m );
##############################################
ed-1.16/ed.h-129-bool extract_replacement( const char ** const ibufpp, const bool isglobal );
ed-1.16/ed.h:130:int next_matching_node_addr( const char ** const ibufpp, const bool forward );
ed-1.16/ed.h-131-bool search_and_replace( const int first_addr, const int second_addr,
##############################################
ed-1.16/testsuite/check.sh-10-objdir=`pwd`
ed-1.16/testsuite/check.sh:11:testdir=`cd "$1" ; pwd`
ed-1.16/testsuite/check.sh-12-ED="${objdir}"/ed
##############################################
ed-1.16/testsuite/check.sh-54-for i in "${testdir}"/*.err ; do
ed-1.16/testsuite/check.sh:55:	base=`echo "$i" | sed 's,^.*/,,;s,\.err$,,'`	# remove dir and ext
ed-1.16/testsuite/check.sh-56-	if cat "$i" | "${ED}" -s test.txt > /dev/null 2>&1 ; then
##############################################
ed-1.16/testsuite/check.sh-74-for i in "${testdir}"/*.ed ; do
ed-1.16/testsuite/check.sh:75:	base=`echo "$i" | sed 's,^.*/,,;s,\.ed$,,'`	# remove dir and ext
ed-1.16/testsuite/check.sh-76-	if "${ED}" -s test.txt < "$i" > /dev/null 2> out.log ; then
##############################################
ed-1.16/main_loop.c-93-/* return address of a marked line */
ed-1.16/main_loop.c:94:static int get_marked_node_addr( int c )
ed-1.16/main_loop.c-95-  {
##############################################
ed-1.16/main_loop.c-98-    { set_error_msg( "Invalid mark character" ); return -1; }
ed-1.16/main_loop.c:99:  return get_line_node_addr( mark[c] );
ed-1.16/main_loop.c-100-  }
##############################################
ed-1.16/main_loop.c-216-      case '+':
ed-1.16/main_loop.c:217:      case '-': if( first ) { first = false; second_addr = current_addr(); }
ed-1.16/main_loop.c-218-                if( isdigit( (unsigned char)(*ibufpp)[1] ) )
##############################################
ed-1.16/main_loop.c-228-                first = false; ++*ibufpp;
ed-1.16/main_loop.c:229:                second_addr = ( ( ch == '.' ) ? current_addr() : last_addr() );
ed-1.16/main_loop.c-230-                break;
##############################################
ed-1.16/main_loop.c-232-      case '?': if( !first ) { invalid_address(); return -1; };
ed-1.16/main_loop.c:233:                second_addr = next_matching_node_addr( ibufpp, ch == '/' );
ed-1.16/main_loop.c-234-                if( second_addr < 0 ) return -1;
##############################################
ed-1.16/main_loop.c-238-                first = false; ++*ibufpp;
ed-1.16/main_loop.c:239:                second_addr = get_marked_node_addr( *(*ibufpp)++ );
ed-1.16/main_loop.c-240-                if( second_addr < 0 ) return -1;
##############################################
ed-1.16/main_loop.c-246-                  if( first_addr < 0 )
ed-1.16/main_loop.c:247:                    { first_addr = ( ( ch == ';' ) ? current_addr() : 1 );
ed-1.16/main_loop.c:248:                      second_addr = last_addr(); }
ed-1.16/main_loop.c-249-                  else first_addr = second_addr;
##############################################
ed-1.16/main_loop.c-252-                  {
ed-1.16/main_loop.c:253:                  if( second_addr < 0 || second_addr > last_addr() )
ed-1.16/main_loop.c-254-                    { invalid_address(); return -1; }
ed-1.16/main_loop.c:255:                  if( ch == ';' ) set_current_addr( second_addr );
ed-1.16/main_loop.c-256-                  first_addr = second_addr; first = true;
##############################################
ed-1.16/main_loop.c-260-      default :
ed-1.16/main_loop.c:261:        if( !first && ( second_addr < 0 || second_addr > last_addr() ) )
ed-1.16/main_loop.c-262-          { invalid_address(); return -1; }
##############################################
ed-1.16/main_loop.c-265-        if( second_addr >= 0 ) addr_cnt = ( first_addr >= 0 ) ? 2 : 1;
ed-1.16/main_loop.c:266:        if( addr_cnt <= 0 ) second_addr = current_addr();
ed-1.16/main_loop.c-267-        if( addr_cnt <= 1 ) first_addr = second_addr;
##############################################
ed-1.16/main_loop.c-275-/* get a valid address from the command buffer */
ed-1.16/main_loop.c:276:static bool get_third_addr( const char ** const ibufpp, int * const addr )
ed-1.16/main_loop.c-277-  {
##############################################
ed-1.16/main_loop.c-284-    { set_error_msg( "Destination expected" ); return false; }
ed-1.16/main_loop.c:285:  if( second_addr < 0 || second_addr > last_addr() )
ed-1.16/main_loop.c-286-    { invalid_address(); return false; }
##############################################
ed-1.16/main_loop.c-296-  if( addr_cnt == 0 ) { first_addr = n; second_addr = m; }
ed-1.16/main_loop.c:297:  if( first_addr < 1 || first_addr > second_addr || second_addr > last_addr() )
ed-1.16/main_loop.c-298-    { invalid_address(); return false; }
##############################################
ed-1.16/main_loop.c-304-  {
ed-1.16/main_loop.c:305:  return check_addr_range( current_addr(), current_addr(), addr_cnt );
ed-1.16/main_loop.c-306-  }
##############################################
ed-1.16/main_loop.c-308-/* set default second_addr and return true if second_addr is valid */
ed-1.16/main_loop.c:309:static bool check_second_addr( const int addr, const int addr_cnt )
ed-1.16/main_loop.c-310-  {
ed-1.16/main_loop.c-311-  if( addr_cnt == 0 ) second_addr = addr;
ed-1.16/main_loop.c:312:  if( second_addr < 1 || second_addr > last_addr() )
ed-1.16/main_loop.c-313-    { invalid_address(); return false; }
##############################################
ed-1.16/main_loop.c-449-              if( !delete_lines( first_addr, second_addr, isglobal ) ||
ed-1.16/main_loop.c:450:                  !append_lines( ibufpp, current_addr(),
ed-1.16/main_loop.c:451:                                 current_addr() >= first_addr, isglobal ) )
ed-1.16/main_loop.c-452-                return ERR;
##############################################
ed-1.16/main_loop.c-464-              fnp = get_filename( ibufpp, false );
ed-1.16/main_loop.c:465:              if( !fnp || !delete_lines( 1, last_addr(), isglobal ) ||
ed-1.16/main_loop.c-466-                  !close_sbuf() ) return ERR;
##############################################
ed-1.16/main_loop.c-487-              n = ( c == 'g' || c == 'G' );	/* mark matching lines */
ed-1.16/main_loop.c:488:              if( !check_addr_range( 1, last_addr(), addr_cnt ) ||
ed-1.16/main_loop.c-489-                  !build_active_list( ibufpp, first_addr, second_addr, n ) )
##############################################
ed-1.16/main_loop.c-506-              break;
ed-1.16/main_loop.c:507:    case 'j': if( !check_addr_range( current_addr(), current_addr() + 1, addr_cnt ) ||
ed-1.16/main_loop.c-508-                  !get_command_suffix( ibufpp, &pflags, 0 ) ) return ERR;
##############################################
ed-1.16/main_loop.c-528-    case 'm': if( !check_addr_range2( addr_cnt ) ||
ed-1.16/main_loop.c:529:                  !get_third_addr( ibufpp, &addr ) ) return ERR;
ed-1.16/main_loop.c-530-              if( addr >= first_addr && addr < second_addr )
##############################################
ed-1.16/main_loop.c-546-    case 'r': if( unexpected_command_suffix( **ibufpp ) ) return ERR;
ed-1.16/main_loop.c:547:              if( addr_cnt == 0 ) second_addr = last_addr();
ed-1.16/main_loop.c-548-              fnp = get_filename( ibufpp, false );
##############################################
ed-1.16/main_loop.c-560-    case 't': if( !check_addr_range2( addr_cnt ) ||
ed-1.16/main_loop.c:561:                  !get_third_addr( ibufpp, &addr ) ||
ed-1.16/main_loop.c-562-                  !get_command_suffix( ibufpp, &pflags, 0 ) ) return ERR;
##############################################
ed-1.16/main_loop.c-575-              if( !fnp ) return ERR;
ed-1.16/main_loop.c:576:              if( addr_cnt == 0 && last_addr() == 0 )
ed-1.16/main_loop.c-577-                first_addr = second_addr = 0;
ed-1.16/main_loop.c:578:              else if( !check_addr_range( 1, last_addr(), addr_cnt ) )
ed-1.16/main_loop.c-579-                return ERR;
##############################################
ed-1.16/main_loop.c-584-              if( addr < 0 ) return ERR;
ed-1.16/main_loop.c:585:              if( addr == last_addr() && fnp[0] != '!' ) set_modified( false );
ed-1.16/main_loop.c-586-              else if( n == 'q' && modified() && prev_status != EMOD )
##############################################
ed-1.16/main_loop.c-589-              break;
ed-1.16/main_loop.c:590:    case 'x': if( second_addr < 0 || second_addr > last_addr() )
ed-1.16/main_loop.c-591-                { invalid_address(); return ERR; }
##############################################
ed-1.16/main_loop.c-599-              break;
ed-1.16/main_loop.c:600:    case 'z': if( !check_second_addr( current_addr() + !isglobal, addr_cnt ) )
ed-1.16/main_loop.c-601-                return ERR;
##############################################
ed-1.16/main_loop.c-606-                  !print_lines( second_addr,
ed-1.16/main_loop.c:607:                    min( last_addr(), second_addr + window_lines() - 1 ),
ed-1.16/main_loop.c-608-                    pflags ) ) return ERR;
##############################################
ed-1.16/main_loop.c-611-    case '=': if( !get_command_suffix( ibufpp, &pflags, 0 ) ) return ERR;
ed-1.16/main_loop.c:612:              printf( "%d\n", addr_cnt ? second_addr : last_addr() );
ed-1.16/main_loop.c-613-              break;
##############################################
ed-1.16/main_loop.c-620-              break;
ed-1.16/main_loop.c:621:    case '\n': if( !check_second_addr( current_addr() +
ed-1.16/main_loop.c-622-                     ( traditional() || !isglobal ), addr_cnt ) ||
##############################################
ed-1.16/main_loop.c-628-    }
ed-1.16/main_loop.c:629:  if( pflags && !print_lines( current_addr(), current_addr(), pflags ) )
ed-1.16/main_loop.c-630-    return ERR;
##############################################
ed-1.16/main_loop.c-658-    if( !lp ) break;
ed-1.16/main_loop.c:659:    set_current_addr( get_line_node_addr( lp ) );
ed-1.16/main_loop.c:660:    if( current_addr() < 0 ) return false;
ed-1.16/main_loop.c-661-    if( interactive )
##############################################
ed-1.16/main_loop.c-664-      int len = 0;
ed-1.16/main_loop.c:665:      if( !print_lines( current_addr(), current_addr(), pflags ) )
ed-1.16/main_loop.c-666-        return false;
##############################################
ed-1.16/signal.c-49-    sighup_pending = false;
ed-1.16/signal.c:50:    if( last_addr() && modified() &&
ed-1.16/signal.c:51:        write_file( hb, "w", 1, last_addr() ) < 0 )
ed-1.16/signal.c-52-      {
##############################################
ed-1.16/signal.c-62-        memcpy( hup + len + need_slash, hb, sizeof hb );
ed-1.16/signal.c:63:        if( write_file( hup, "w", 1, last_addr() ) >= 0 ) exit( 0 );
ed-1.16/signal.c-64-        }
##############################################
ed-1.16/buffer.c-43-
ed-1.16/buffer.c:44:int current_addr( void ) { return current_addr_; }
ed-1.16/buffer.c:45:int inc_current_addr( void )
ed-1.16/buffer.c-46-  { if( ++current_addr_ > last_addr_ ) current_addr_ = last_addr_;
ed-1.16/buffer.c-47-    return current_addr_; }
ed-1.16/buffer.c:48:void set_current_addr( const int addr ) { current_addr_ = addr; }
ed-1.16/buffer.c-49-
ed-1.16/buffer.c:50:int last_addr( void ) { return last_addr_; }
ed-1.16/buffer.c-51-
##############################################
ed-1.16/buffer.c-58-
ed-1.16/buffer.c:59:int inc_addr( int addr )
ed-1.16/buffer.c-60-  { if( ++addr > last_addr_ ) addr = 0; return addr; }
ed-1.16/buffer.c-61-
ed-1.16/buffer.c:62:int dec_addr( int addr )
ed-1.16/buffer.c-63-  { if( --addr < 0 ) addr = last_addr_; return addr; }
##############################################
ed-1.16/buffer.c-224-    { enable_interrupts(); return false; }
ed-1.16/buffer.c:225:  n = search_line_node( inc_addr( to ) );
ed-1.16/buffer.c-226-  p = search_line_node( from - 1 );	/* this search_line_node last! */
##############################################
ed-1.16/buffer.c-237-/* return line number of pointer */
ed-1.16/buffer.c:238:int get_line_node_addr( const line_t * const lp )
ed-1.16/buffer.c-239-  {
##############################################
ed-1.16/buffer.c-306-  int size = 0;
ed-1.16/buffer.c:307:  line_t * const ep = search_line_node( inc_addr( to ) );
ed-1.16/buffer.c-308-  line_t * bp = search_line_node( from );
##############################################
ed-1.16/buffer.c-337-  line_t *b1, *a1, *b2, *a2;
ed-1.16/buffer.c:338:  int n = inc_addr( second_addr );
ed-1.16/buffer.c-339-  int p = first_addr - 1;
##############################################
ed-1.16/buffer.c-348-  else if( !push_undo_atom( UMOV, p, n ) ||
ed-1.16/buffer.c:349:           !push_undo_atom( UMOV, addr, inc_addr( addr ) ) )
ed-1.16/buffer.c-350-    { enable_interrupts(); return false; }
##############################################
ed-1.16/buffer.c-501-  {
ed-1.16/buffer.c:502:  line_t * const ep = search_line_node( inc_addr( to ) );
ed-1.16/buffer.c-503-  line_t * bp = search_line_node( from );
##############################################
ed-1.16/configure-49-	case ${option} in
ed-1.16/configure:50:	*=*) optarg=`echo ${option} | sed -e 's,^[^=]*=,,;s,/$,,'` ;;
ed-1.16/configure-51-	esac
##############################################
ed-1.16/configure-131-		## the sed command below emulates the dirname command
ed-1.16/configure:132:		srcdir=`echo $0 | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
ed-1.16/configure-133-	fi
##############################################
ed-1.16/configure-142-# Set srcdir to . if that's what it is.
ed-1.16/configure:143:if [ "`pwd`" = "`cd "${srcdir}" ; pwd`" ] ; then srcdir=. ; fi
ed-1.16/configure-144-
##############################################
ed-1.16/io.c-36-  { return ( unterminated_line != 0 &&
ed-1.16/io.c:37:             unterminated_line == search_line_node( last_addr() ) ); }
ed-1.16/io.c-38-
##############################################
ed-1.16/io.c-48-
ed-1.16/io.c:49:  if( pflags & GNP ) { printf( "%d\t", current_addr() ); col = 8; }
ed-1.16/io.c-50-  while( --len >= 0 )
##############################################
ed-1.16/io.c-82-  {
ed-1.16/io.c:83:  line_t * const ep = search_line_node( inc_addr( to ) );
ed-1.16/io.c-84-  line_t * bp = search_line_node( from );
##############################################
ed-1.16/io.c-90-    if( !s ) return false;
ed-1.16/io.c:91:    set_current_addr( from++ );
ed-1.16/io.c-92-    print_line( s, bp->len, pflags );
##############################################
ed-1.16/io.c-231-  const bool o_isbinary = isbinary();
ed-1.16/io.c:232:  const bool appended = ( addr == last_addr() );
ed-1.16/io.c-233-  const bool o_unterminated_last_line = unterminated_last_line();
##############################################
ed-1.16/io.c-235-
ed-1.16/io.c:236:  set_current_addr( addr );
ed-1.16/io.c-237-  while( true )
##############################################
ed-1.16/io.c-250-      {
ed-1.16/io.c:251:      up = push_undo_atom( UADD, current_addr(), current_addr() );
ed-1.16/io.c-252-      if( !up ) { enable_interrupts(); return -1; }
##############################################
ed-1.16/io.c-262-  if( appended && isbinary() && ( newline_added || total_size == 0 ) )
ed-1.16/io.c:263:    unterminated_line = search_line_node( last_addr() );
ed-1.16/io.c-264-  return total_size;
##############################################
ed-1.16/io.c-292-  if( !scripted() ) printf( "%lu\n", size );
ed-1.16/io.c:293:  return current_addr() - addr;
ed-1.16/io.c-294-  }
##############################################
ed-1.16/io.c-308-    len = lp->len;
ed-1.16/io.c:309:    if( from != last_addr() || !isbinary() || !unterminated_last_line() )
ed-1.16/io.c-310-      p[len++] = '\n';
##############################################
ed-1.16/regex.c-188-   given direction. wrap around begin/end of editor buffer if necessary */
ed-1.16/regex.c:189:int next_matching_node_addr( const char ** const ibufpp, const bool forward )
ed-1.16/regex.c-190-  {
ed-1.16/regex.c-191-  const regex_t * const exp = get_compiled_regex( ibufpp, false );
ed-1.16/regex.c:192:  int addr = current_addr();
ed-1.16/regex.c-193-
##############################################
ed-1.16/regex.c-195-  do {
ed-1.16/regex.c:196:    addr = ( forward ? inc_addr( addr ) : dec_addr( addr ) );
ed-1.16/regex.c-197-    if( addr )
##############################################
ed-1.16/regex.c-205-    }
ed-1.16/regex.c:206:  while( addr != current_addr() );
ed-1.16/regex.c-207-  set_error_msg( "No match" );
##############################################
ed-1.16/regex.c-372-        { enable_interrupts(); return false; }
ed-1.16/regex.c:373:      set_current_addr( addr - 1 );
ed-1.16/regex.c-374-      do {
##############################################
ed-1.16/regex.c-376-        if( !txt ) { enable_interrupts(); return false; }
ed-1.16/regex.c:377:        if( up ) up->tail = search_line_node( current_addr() );
ed-1.16/regex.c-378-        else
ed-1.16/regex.c-379-          {
ed-1.16/regex.c:380:          up = push_undo_atom( UADD, current_addr(), current_addr() );
ed-1.16/regex.c-381-          if( !up ) { enable_interrupts(); return false; }
##############################################
ed-1.16/regex.c-385-      enable_interrupts();
ed-1.16/regex.c:386:      addr = current_addr();
ed-1.16/regex.c-387-      match_found = true;