1/* Copyright 1997,1999,2001-2004,2007,2009 Alain Knaff. 2 * This file is part of mtools. 3 * 4 * Mtools is free software: you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation, either version 3 of the License, or 7 * (at your option) any later version. 8 * 9 * Mtools is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with Mtools. If not, see <http://www.gnu.org/licenses/>. 16 * 17 * Do filename expansion with the shell. 18 */ 19 20#define EXPAND_BUF 2048 21 22#include "sysincludes.h" 23#include "mtools.h" 24 25void precmd(struct device *dev) 26{ 27#ifndef OS_mingw32msvc 28 int status; 29 pid_t pid; 30 31 if(!dev || !dev->precmd) 32 return; 33 34 switch((pid=fork())){ 35 case -1: 36 perror("Could not fork"); 37 exit(1); 38 break; 39 case 0: /* the son */ 40 execl("/bin/sh", "sh", "-c", dev->precmd, (char *)NULL); 41 break; 42 default: 43 wait(&status); 44 break; 45 } 46#endif 47} 48 49