Это не файл автоматического восстановления, это ссылка, используемая в качестве маркера блокировки для файла.
обновление
Если я скажу вам, вы познакомите меня с Саммер Глау?
Вероятно, изменить это будет нелегко; Я только немного покопался, и похоже, что это установлено в коде C. Но давайте зададим следующий вопрос: почему вы хотите? Я предполагаю, что вы используете регулярное выражение для .c
файлов, которым вы не хотите соответствовать. Если это так, обратите внимание, что все эти ссылки на файл блокировки начинаются с .#
- это неизменно жестко - так что вы всегда можете исключить файлы с именами, которые совпадают с «^. #» (В зависимости от того, какой синтаксис регулярного выражения вы используете.)
Если вы действительно хотите взломать его, он находится в filelock.c примерно в строке 320 в EMACS 22. Вот код:
/* Write the name of the lock file for FN into LFNAME. Length will be
that of FN plus two more for the leading `.#' plus 1 for the
trailing period plus one for the digit after it plus one for the
null. */
#define MAKE_LOCK_NAME(lock, file) \
(lock = (char *) alloca (SBYTES (file) + 2 + 1 + 1 + 1), \
fill_in_lock_file_name (lock, (file)))
static void
fill_in_lock_file_name (lockfile, fn)
register char *lockfile;
register Lisp_Object fn;
{
register char *p;
struct stat st;
int count = 0;
strcpy (lockfile, SDATA (fn));
/* Shift the nondirectory part of the file name (including the null)
right two characters. Here is one of the places where we'd have to
do something to support 14-character-max file names. */
for (p = lockfile + strlen (lockfile); p != lockfile && *p != '/'; p--)
p[2] = *p;
/* Insert the `.#'. */
p[1] = '.';
p[2] = '#';
p = p + strlen (p);
while (lstat (lockfile, &st) == 0 && !S_ISLNK (st.st_mode))
{
if (count > 9)
{
*p = '\0';
return;
}
sprintf (p, ".%d", count++);
}
}