zsh 的历史文件编码问题……

https://www.zsh.org/mla/users/2011/msg00154.html
他们说他们使用的某种 metafied format,要转码的样子

#define Meta ((char) 0x83)

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>

/* from zsh utils.c */
char *unmetafy (char *s, int *len)
{
  char *p, *t;

  for (p = s; *p && *p != Meta; p++);
  for (t = p; (*t = *p++);)
    if (*t++ == Meta)
      t [-1] = *p++ ^ 32;
  if (len)
    *len = t - s;
  return s;
}

但是我编译后不知道那个东西怎么用
那个是用来改源码的吗?
都改源码了为什么不直接当补丁接受了?
为什么不直接用 UTF-8 编码历史文件?

不知道,不过抠出来是可以用的。

这么用:

zhist read < history_file > readable_output

1赞

所以他那个程序是用来干什么的啊:rofl:

解码用的函数。你需要自己写段程序调用它不然没法跑的。

:rofl: