view lispintro/mkinstalldirs @ 51723:635066222916

(ALIGN): Add casts to simplify usage. (BLOCK_ALIGN, BLOCK_BYTES, ABLOCKS_PADDING, ABLOCKS_SIZE) (ABLOCKS_BYTES, ABLOCK_ABASE, ABLOCKS_BUSY, ABLOCKS_BASE): New macros. (struct ablock, struct ablocks): New types. (free_ablock): New global var. (lisp_align_malloc, lisp_align_free): New functions. (FLOAT_BLOCK_SIZE): Redefine in terms of BLOCK_BYTES. (struct float_block): Reorder and add gcmarkbits. (GETMARKBIT, SETMARKBIT, UNSETMARKBIT, FLOAT_BLOCK, FLOAT_INDEX) (FLOAT_MARKED_P, FLOAT_MARK, FLOAT_UNMARK): New macros. (init_float, make_float): Use lisp_align_malloc. (free_float, live_float_p): Don't use `type' any more. (make_float): Use FLOAT_UNMARK to access to mark bit. (mark_maybe_object, mark_maybe_pointer, survives_gc_p): Use FLOAT_MARKED_P to access the mark bit. (pure_alloc): Simplify use of ALIGN. (mark_object): Use FLOAT_MARK to access the mark bit. (gc_sweep): Use new macros to access the float's mark bit. (init_alloc_once): Init free_ablock.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 04 Jul 2003 20:19:06 +0000
parents a8ee89e61d20
children f0eb34e60705 746c40973d25
line wrap: on
line source

#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain

# $Id: mkinstalldirs,v 1.10 1996/05/03 07:37:52 friedman Exp $

errstatus=0

for file
do
   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
   shift

   pathcomp=
   for d
   do
     pathcomp="$pathcomp$d"
     case "$pathcomp" in
       -* ) pathcomp=./$pathcomp ;;
     esac

     if test ! -d "$pathcomp"; then
        echo "mkdir $pathcomp" 1>&2

        mkdir "$pathcomp" || lasterr=$?

        if test ! -d "$pathcomp"; then
  	  errstatus=$lasterr
        fi
     fi

     pathcomp="$pathcomp/"
   done
done

exit $errstatus

# mkinstalldirs ends here