小 (→friends) |
(→utmp.c) |
||
第53行: | 第53行: | ||
; hisfriend [(int uid,struct user_info* him)] | ; hisfriend [(int uid,struct user_info* him)] | ||
* UserInfo.HasFriend() | * UserInfo.HasFriend() | ||
+ | |||
+ | == list.c == | ||
+ | |||
+ | === TERM显示相关 === | ||
+ | ; print_title | ||
+ | ; print_title2 | ||
+ | ; print_user_info_title | ||
+ | ; show_message [(char *msg)] | ||
+ | ; pagerchar [(int usernum, struct user_info *user, int pager, int *isfriend)] | ||
+ | ; msgchar [(struct user_info *uin, int *isfriend)] | ||
+ | ; do_userlist | ||
+ | 显示user list。 | ||
+ | |||
+ | ; show_userlist | ||
+ | 显示user list。调用do_userlist。如果需要刷新则调用fill_userlist()。 | ||
+ | |||
+ | ; deal_key | ||
+ | ; deal_key2 | ||
+ | 按键处理。 | ||
+ | |||
+ | ; printuent [(struct userec *uentp, char *arg)] | ||
+ | 显示用户信息。 | ||
+ | |||
+ | ; Show_Users | ||
+ | 调用printuent显示所有用户信息。 | ||
+ | |||
+ | do_query [(int star, int curr)] | ||
+ | do_query2 [(int star, int curr)] | ||
+ | |||
+ | ; Users | ||
+ | 初始化user_data,调Show_Users显示用户,deal_key2接收按键,do_query2执行。 | ||
+ | |||
+ | ; t_friends | ||
+ | 调用show_userlist显示好友,deal_key接收按键,do_query执行。 | ||
+ | |||
+ | ; t_users | ||
+ | 调用show_userlist显示用户,deal_key接收按键,do_query执行。 | ||
+ | |||
+ | ; t_rusers | ||
+ | 调用t_users显示用户,显示真实用户名。 | ||
+ | |||
+ | ; choose [(int update, int defaultn, int (*title_show) (), int (*key_deal) (), int (*list_show) (), int (*read) (),int(*read2)())] | ||
+ | 显示、选择、执行函数。 | ||
+ | |||
+ | ; setlistrange [(int i)] | ||
+ | 设定显示范围。 | ||
+ | |||
+ | ; readuser [(int star, int curr)] | ||
+ | 调用display_userinfo显示/修改用户信息。 | ||
+ | |||
+ | |||
+ | === user_record相关 === | ||
+ | update_data [(void *data)] | ||
+ | ; swap_user_record | ||
+ | 交换user_record两项。 | ||
+ | |||
+ | ; sort_user_record | ||
+ | 排序user_record | ||
+ | |||
+ | ; full_utmp [(struct user_info *uentp, int *count)] | ||
+ | 填充user_record一项。 | ||
+ | |||
+ | ; fill_userlist | ||
+ | 调用full_utmp(),填充user_record | ||
+ | |||
+ | ; countusers [(struct userec *uentp, char *arg)] | ||
+ | ; allusers | ||
+ | 调用countusers()数用户数量。 |
2012年1月31日 (二) 07:19的版本
UI部分
入口函数:src/list.c deal_key()
逻辑部分
friends
// 部分
struct user_info { /* Structure used in UTMP file */
int active; /* When allocated this field is true */
int uid; /* Used to find user name in passwd file */
int pid; /* kill() to notify user of talk request */
// ...
int friendsnum;
int friends_uid[MAXFRIENDS];
#ifdef FRIEND_MULTI_GROUP
unsigned int friends_p[MAXFRIENDS];
#endif
// ...
};
struct user_info *user_record[USHM_SIZE];
// friends文件就是这个东西的一个数组
struct friends {
char id[13]; // 用户名
char exp[LEN_FRIEND_EXP]; // 昵称,默认为空
#ifdef FRIEND_MULTI_GROUP
int groupid;
#endif
};
struct friends_info {
char exp[LEN_FRIEND_EXP]; // 存储昵称用
};
struct friends_info* topfriend; // 存储了好友的昵称
// 次序按照用户名经过处理排序后的,对照userinfo.friends_uid
utmp.c
- cmpfuid [(const void*a,const void*b)]
- Friend.NCaseId()
- getfriendstr [(struct userec* user,struct user_info* puinfo)]
- User.GetFriends()
- myfriend [(int uid, char *fexp)]
- UserInfo.HasFriend()
- hisfriend [(int uid,struct user_info* him)]
- UserInfo.HasFriend()
list.c
TERM显示相关
- print_title
- print_title2
- print_user_info_title
- show_message [(char *msg)]
- pagerchar [(int usernum, struct user_info *user, int pager, int *isfriend)]
- msgchar [(struct user_info *uin, int *isfriend)]
- do_userlist
显示user list。
- show_userlist
显示user list。调用do_userlist。如果需要刷新则调用fill_userlist()。
- deal_key
- deal_key2
按键处理。
- printuent [(struct userec *uentp, char *arg)]
显示用户信息。
- Show_Users
调用printuent显示所有用户信息。
do_query [(int star, int curr)] do_query2 [(int star, int curr)]
- Users
初始化user_data,调Show_Users显示用户,deal_key2接收按键,do_query2执行。
- t_friends
调用show_userlist显示好友,deal_key接收按键,do_query执行。
- t_users
调用show_userlist显示用户,deal_key接收按键,do_query执行。
- t_rusers
调用t_users显示用户,显示真实用户名。
- choose [(int update, int defaultn, int (*title_show) (), int (*key_deal) (), int (*list_show) (), int (*read) (),int(*read2)())]
显示、选择、执行函数。
- setlistrange [(int i)]
设定显示范围。
- readuser [(int star, int curr)]
调用display_userinfo显示/修改用户信息。
user_record相关
update_data [(void *data)]
- swap_user_record
交换user_record两项。
- sort_user_record
排序user_record
- full_utmp [(struct user_info *uentp, int *count)]
填充user_record一项。
- fill_userlist
调用full_utmp(),填充user_record
- countusers [(struct userec *uentp, char *arg)]
- allusers
调用countusers()数用户数量。